小编834*_*457的帖子

为什么必须为realloc分配指针而不改变内存块中的第一个值?

int *ptr;
...
realloc(ptr,++count*sizeof(int));
      or
ptr=realloc(ptr,++count*sizeof(int));
Run Code Online (Sandbox Code Playgroud)

我注意到如果我多次使用第一个选项,第一个内存地址(ptr指向)的值变为未定义(尽管内存块中的所有其他值都很好,可以通过下标访问ptr).

但是,我假设所有realloc都是缩小或增加内存块的大小,并且ptr仍然指向相同的内存块,并且它的值都不会改变.因此,如果我使用第一个选项,为什么内存块中的第一个地址最终会产生意外值,因为它ptr仍然指向同一个地址?

EDIT: 我确实记得为ptr分配内存,只是没想到它的工作提到.

c memory realloc

1
推荐指数
1
解决办法
1273
查看次数

标签 统计

c ×1

memory ×1

realloc ×1