Su duda es muy normal.
Estás pidiendo el tamaño del puntero, no del arreglo.
No hay una manera genérica de saber el tamaño del espacio de memoria que un puntero apunta.
Tienes que almacenar el numero usado en el 'malloc'.
Estás pidiendo el tamaño del puntero, no del arreglo.
No hay una manera genérica de saber el tamaño del espacio de memoria que un puntero apunta.
Tienes que almacenar el numero usado en el 'malloc'.
Código [Seleccionar]
int * i = malloc(sizeof(int)) // numero
int * j = malloc(sizeof(int) * 5) // arreglo
sizeof(i) == sizeof(j) == sizeof(int *)