SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: meyiyiyi en Sábado 24 de Octubre de 2009, 21:13
-
Buenas tardes. Mi primer msj; estoy estudiando ing. en informatica, asi q me van a tener por un largo tiempo acá. Para empezar mi consulta:
Que valores me retorna el memcpy?... quiero saber si se ha copiado correctamente o ha surgido un error. Muchas Gracias
-
http://www.cplusplus.com/reference/clib ... ng/memcpy/ (http://www.cplusplus.com/reference/clibrary/cstring/memcpy/" onclick="window.open(this.href);return false;)
memcpy devuelve lo mismo que le pasas en el primer parametro (la direccion de destino de la copia), si esta falla se producira una excepcion.
-
Ah claro!, en las referencias leia que devolvia s1; y s1 lo usavan como primer parametro., no comprendia.
Necesito realizar una copia y luego verificar si se copió o no, está bien de esta forma?:
int modificarCteLDEC(LDEC* ldec, void* elemento){
memcpy(ldec->Cte->Elem,elemento,ldec->TamanioDato);
if(ldec->Cte->Elem==elemento) return TRUE;
else return FALSE;
}
Tengo tanto problemas con punteros que no se si está bien el álgebra de sus operaciones. Muchas gracias nuevamente ;-)
O mejor hecho así:
int modificarCteLDEC(LDEC* ldec, void* elemento){
if(memcpy(ldec->Cte->Elem,elemento,ldec->TamanioDato)==elemento) return TRUE;
else return FALSE;
}
-
No, no esta bien.
De cualquier manera la comprobacion seria redundante, si la copia falla se produce una excepcion (al no ser controlada el programa muere) de otra manera podes asumir sin problemas que funciono correctamente.
-
Es que me piden que verifique si la copia se realizó con exito, como lo tengo que hacer?
EI: juntando mensajes, usa el boton editar si nadie responde por favor.
De todos modos no entiendo pq está mal.
-
Usa memcmp pero no tiene sentido ...
if(memcpy(ldec->Cte->Elem,elemento,ldec->TamanioDato)==elemento) return TRUE;
La funcion memcpy retorna el primer parametro (destination) que en tu caso es ldec->Cte->Elem.
if(ldec->Cte->Elem==elemento) return TRUE;
Esto compara si ambos punteros apuntan a la misma direccion.
-
Claro, estaba comparando las direcciones de memoria y no su contenido. Muchas gracias ;)