【发布时间】:2018-07-27 09:50:10
【问题描述】:
我继承了一个 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));
我在 valgrind 中遇到以下错误以及其他错误:
大小为 8 的读取无效
==45918== 在 0x401945:主 (getwtmeasAll_1_main.c:143)
==45918== 地址 0x7e83850 是一个大小为 896 的块内的 0 个字节已释放==45918== at 0x4C27430: free (vg_replace_malloc.c:446)
这里有什么问题。
【问题讨论】:
-
请提供一个完整的例子。目前还不太清楚143号线在哪里……
-
也是一个最小的例子,因为很可能不是前面的 142 行都是相关的。
-
icd是一种类型。 -
谢谢。我将添加一个最小的示例。第 143 行是 printf 语句。任何有关 icd 的详细信息将不胜感激。