void func(int *p)
{
// Add code to print MEMORY SIZE which is pointed by pointer P.
}
int main()
{
int *p = (int *) malloc (10);
func(p);
}
¿Cómo podemos encontrar MEMORY SIZE del puntero de memoria P in func()?¿Cómo podemos encontrar el TAMAÑO DE MEMORIA del puntero de memoria dado?
No puede hacer esto de forma portátil. –
aquí no hay 'P' en su fragmento de arriba. Y debe pasar el tamaño a la función si lo necesita allí (o tiene un valor de detención) – pmg
Podemos encontrar el tamaño de memoria asignado dinámicamente desde el puntero de memoria P. (P-1) apunta al encabezado del bloque de memoria y * (P -1) le da el tamaño de memoria asignado. NOTA: * (P-1) no le da el tamaño exacto de la memoria pero da "memoria asignada + tamaño del encabezado del bloque de memoria + tamaño de la cola del bloque de memoria" – siva