小编man*_*idk的帖子

Realloc()没有改变已经分配的内存的内存地址?

#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

2
推荐指数
2
解决办法
156
查看次数

标签 统计

c ×1