Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
realloc内存访问冲突读取位置_C_Pointers_Memory Management_Memory Leaks_Realloc - Fatal编程技术网

realloc内存访问冲突读取位置

realloc内存访问冲突读取位置,c,pointers,memory-management,memory-leaks,realloc,C,Pointers,Memory Management,Memory Leaks,Realloc,也许我的大脑现在工作不正常。。。我想知道为什么我的代码中会出现上述错误: int ** zm; zm = (int**)calloc(1, sizeof(int*)); *zm = (int*)calloc(1, sizeof(int)); *zm[0] = 5; *zm = (int*)realloc(*zm, 2*sizeof(int)); *zm[1] = 10; // Access violation reading location 0xFFFFFFFFFFFFFFFF 有人能解释一

也许我的大脑现在工作不正常。。。我想知道为什么我的代码中会出现上述错误:

int ** zm;
zm = (int**)calloc(1, sizeof(int*));
*zm = (int*)calloc(1, sizeof(int));
*zm[0] = 5;
*zm = (int*)realloc(*zm, 2*sizeof(int));
*zm[1] = 10; // Access violation reading location 0xFFFFFFFFFFFFFFFF
有人能解释一下代码里发生了什么吗

索引错误,请尝试
(*zm)[1]
。并检查库调用的错误。

尝试*(zm+1)分配第二个元素的值
*(zm+1)=10

“我想知道为什么我的代码中会出现上述错误”,因为您使用
calloc
realloc
而不是
std::vector
。你认为
*zm[0]
(*zm)[0]
?事实上,它是<代码> *(ZM(0))< /> >。@使用代码< > STD::向量可能是处理现代C++中向量/数组的首选方法,上面代码中的错误不是直接使用“<代码> STD::vector < /代码>”的结果。code>calloc/
realloc
在某些情况下仍然有用,不会神奇地导致出现错误。当然,使用它们可能很难,但是……@右对齐,TwitelOK,OK,我的错误是我选择C++类,但实际上我使用的是ASNi-C。我不能用矢量。但是你的评论根本没有解决这个问题。@rightfold你的回答就像是问:“我的windows有问题,我如何解决?”答:“使用linux”。问题是关于realloc和您的答案“使用向量”。是的,您是对的。不,我得出的结论是,我先编制索引,然后取值。谢谢