Duplicar posible:
newbie questions about malloc and sizeofsizeof() en la memoria malloc'd
Estoy intentando leer las cadenas en un programa. Cuando me di cuenta de que a veces las cuerdas estaban siendo corrompidos, probé el siguiente código:
void *mallocated = malloc(100);
printf("sizeof(mallocated) = %d\n", sizeof(mallocated));
De acuerdo con mi programa, el tamaño de mallocated
era 8
, a pesar de que asignaron 100 bytes por ello. Debido a esto, cada vez que trato de almacenar una cadena de más de 8 bytes, todo lo que se encuentra después del octavo byte a veces desaparecerá. ¿Por qué está sucediendo esto y cómo puedo prevenirlo?
sizeof (mal localizado) le dará el tamaño de vacío * que es de 8 bytes en su sistema de 64 bits. ¿Cómo se asigna una cadena a esa variable, con strcpy? – tur1ng
Ver: http://stackoverflow.com/questions/1533519/newbie-questions-about-malloc-and-sizeof – Shog9
Su conclusión es incorrecta también, cualquier cosa escrita después del octavo "byte" (no poco) no desaparece al azar a veces. – Blindy