我继承了C代码..。一条线在下面。这里的icd是什么意思。是关键字还是名字。我在任何地方都找不到它。
icd **d1cols = (icd**)malloc(measquant*sizeof(icd *));在我有了之后:
for(i=0; i<measquant; i++){
*(d1cols + i) = getwtOnAFileColReturnDouble1(fp1, fp2, xx, yy);
}如果我打印下一行
printf("Test 0,0 weight=%.3le\n",*((*(d1cols + 0 ))->wt+0));除了其他错误外,我还犯了下面的错误:
在0x401945处8 ==45918==的读取无效: main (getwtmeasAll_1_main.c:143) ==45918==地址0x7e83850是大小为896的块中的0字节,在0x4C27430:==45918== (vg_replace_malloc.c:446)
这里出了什么问题。
发布于 2018-02-16 14:16:23
看起来这段代码正在尝试读取已经被释放的一部分内存(空闲的‘d’)。
icd是由代码使用的库定义的数据结构。如果没有更多的细节,就没什么可说的了。
https://stackoverflow.com/questions/48827569
复制相似问题