#include <stdio.h>
#include <stdlib.h>
void f(int **p) {
printf("*p: %ptr\n", *p);
*p = realloc(*p, 6*sizeof(int));
printf("*p: %ptr\n", *p);
}
int main() {
int *a = malloc(3*sizeof(int));
printf("a before f(): %ptr", a);
f(&a);
printf("new a address after f(): %ptr\n", a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,所有内存地址都是相同的.我错误地认为realloc()
在地址上调用函数后它应该返回一个新的内存地址吗?
c ×1