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分配内存,只是没想到它的工作提到.