El dom, 23 de abr de 2000, a las 12:00:10 +0200, Francisco José Avila Bermejo dijo: > > memcpy( a, b, sizeof(b) ); > > > > ¿no? (digo yo). Igual (respondo rapido) para tu ejemplo no se > > puede, pero si no recuerdo mal, es asi :) > > Pero es que tiene punteros y punteros a punteros, y el sizeof() no puede saber > el tamano de un vector (punteros de punteros) dinámico. Eso funciona, pero es > muy probable que de un core en un momento dado, ya que no reservas toda la > memoria que necesitas.
creo que si que funcionaria: con memcpy copias EL PUNTERO, la direccion, tu interes NO es copiar EL CONTENIDO: al copiar el puntero puedes acceder al contenido. SI coges un puntero (o puntero a puntero) y lo metes en otro sitio, eso te sigue permitiendo acceder a la posicion de memoria apuntada. No se si me explico: tu al copiar la estructura vas a dejar en el destino los mismos valores que tienen los campos origen, entre ellos el valor del puntero que apunta a un array de punteros. Con ese puntero DESDE EL DESTINO sigues pudiendo acceder al array de punteros, ¿no? :) Vamos, a lo mejor me estoy rayando, pero yo creo que es asi :? Imagina el ejemplo struct { int *puntero; } a, b; si a.puntero apunta a 1234; al copiar en b la estructura a, b.puntero contendrá el mismo valor y apuntará al mismo lugar. Si en lugar de ser un solo puntero es **, como el ** apunta a vector[0], sigue siendo el mismo tamaño. :? me lo voy a pensar (es que estoy online y pensando rapido :). salu2 -- Windows es multitarea real: puede ejecutar 2 bugs simultáneamente. _-----------------------------------------------------_ | NoP / Compiler -- nop @ todolinux.org | |-------------------------------------------------------| | POWERED BY - Linux RedHat 6.0 - Reg. User #74.821 | | http://www.ctv.es/USERS/sromero | ~-----------------------------------------------------~