int *a;
char *b;
float *c;
short*d;
a = malloc(10* sizeof(int));
b = malloc(10 * sizeof(char));
c = malloc(16 * sizeof(float));
d = malloc(32 * sizeof(short));
printf("\n a:%d b:%d c:%d d:%d", a, b, c, d);
当我执行PROGRAMM,我可以理解,每一个的malloc从一个不同另一个一些字节(在存储器中分配时)。谁能解释为什么会发生这种情况? 例如,第一个和第二个malloc不同80个字节。第二个和第三个不同的是24个字节。为什么发生这种情况?
'%d'是指针的错误格式。 '%d'接受一个'int'。要打印一个指针,你需要'printf(“%p”,(void *)ptr)''。 – melpomene
指针是不同的,因为你不能在同一个内存位置存储多个值。 – melpomene
既不是你打印的是清晰的,也不是你的问题。你只是打印一个随机值,你的意图不明确。 – milevyo