Re: Pregunta técnica sobre C
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 |
~-----------------------------------------------------~
Reply to: