<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Tengo este código que algunos ya conocerán. Lo que quiero saber es si hay un realloc o posibilidad de reservar más memoria pero sin perder los datos que ya tengas guardado, lo cual no sucede en mi programa. A ver si alguno puede ayudarme, un saludo.<div><b>-----------------------------------------------------------------</b></div><div><div>#include <stdio.h></div><div>#include <vector></div><div><br></div><div>using namespace std;</div><div><br></div><div>int* metodo(int*);</div><div><br></div><div>int main()</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>int *array;</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>array = new int;</div><div><span class="Apple-tab-span" style="white-space:pre">     </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>array[0]=69; <b> <-- Escribo en el primer</b></div><div><span class="Apple-tab-span" style="white-space:pre">                    </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>array=metodo(array);</div><div><span class="Apple-tab-span" style="white-space:pre"> </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>printf("Tercer valor del vector: %d \n", array[2]);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>printf("Tercer valor del vector: %d \n", array[0]); <b> <--- debería leerse 69 pero sale un 0</b></div><div><span class="Apple-tab-span" style="white-space:pre">      </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>delete[] array;</div><div><span class="Apple-tab-span" style="white-space:pre">      </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>return 0;</div><div>}</div><div><span class="Apple-tab-span" style="white-space:pre">    </span></div><div>int* metodo(int* vector)</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>int N=6;</div><div><span class="Apple-tab-span" style="white-space:pre">     </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>vector = new int[N];  <b><-- Aquí me gustaría un realloc que se hace en MALLOC</b></div><div><span class="Apple-tab-span" style="white-space:pre">       </span>for(int i=1; i<N; i++)</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">            </span>vector[i]=i+5;</div><div><span class="Apple-tab-span" style="white-space:pre">       </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>printf("Valores del vector: %d, %d, %d, %d y %d \n",vector[0],vector[1],vector[2],vector[3],vector[4]);</div><div><span class="Apple-tab-span" style="white-space:pre">    </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>return vector;</div><div>}</div></div><div><b>-----------------------------------------------------------------</b></div></body></html>