Tengo curiosidad por saber si existe alguna correlación entre la longitud de la dirección de una variable (puntero) en la pila y el montón. En muchas ocasiones, he visto que los relativos a las variables de pila suelen ser más largos en comparación con Heap. Por ejemplo, considere la siguiente prueba simple:patrones de ubicación de memoria en la pila y en el montón
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i = 0;
int *j = malloc(sizeof(int)); *j = 0;
printf("&i = %p\n j = %p\n", &i, j);
free(j);
return 0;
}
salida:
&i = 0x7fffe9c7fa5c
j = 0x100e010
Estos resultados se obtienen en Linux usando gcc
; ¿podría ser esto dependiente de OS/compilador?
No estoy 100% seguro, pero supongo que es CPU/OS/Compiler específico en ese orden. Además, es probable que ni siquiera vea una dirección física. Además, el montón crece y la pila crece, por lo que la dirección de una variable de pila es mucho más baja. – Corbin