Título: Ayuda con memoria dinamica Publicado por: d00ze13 en 23 Mayo 2014, 23:15 pm A ver si alguien me puede ayudar con una cosa que me he atascado de memoria dinámica.
Código
Título: Re: Ayuda con memoria dinamica Publicado por: eferion en 24 Mayo 2014, 00:18 am En C++ no hace falta usar los typedef para las estructuras:
El siguiente código en C++... Código
... es equivalente a tu versión en C: Código
No es un fallo, pero el código tiene menos basura y eso se agradece ;) El fallo te da porque tu has declarado lista.datos como un puntero... no como un array de punteros. La siguiente instrucción sí sería válida: Código
Aún así, si lo que quieres es almacenar una lista de punteros, puedes usar mejor un contenedor de C++. El más común es std::vector: Código
La otra opción es declarar lista.datos como un puntero doble: Código
Título: Re: Ayuda con memoria dinamica Publicado por: d00ze13 en 24 Mayo 2014, 00:36 am Muchas gracias!!
Otra duda ya la última, si tengo esta estructura de datos dentro de otra creada con new para memoria dinámica el nombre y array de tDatos también estarían en el Heap no? Código
Título: Re: Ayuda con memoria dinamica Publicado por: eferion en 24 Mayo 2014, 10:02 am Efectivamente.
Al crear un elemento nuevo con 'new', todo su contenido se crea en el heap, si se almacenase algo en el stack tendrías un problema porque esa información acabaría desapareciendo al salir del ámbito que le corresponda. Lo que está en el heap sólo desaparece cuando usas delete. Un saludo. |