2

当我在 Linux 中使用 R 中的 .c 函数时,我收到错误消息, * 捕获 segfault *地址 0x10,导致“内存未映射”。我检查了指针的分配和释放是否有问题,但到目前为止我找不到任何错误。我可以在 Windows 的 R 中执行 .c 函数,这很奇怪。

谢谢你的帮助。

PS这是我的c代码中指针分配和释放的一部分:

double **x;
x= (double **)calloc(nRow ,sizeof(double*));
for(i = 0; i < nRow; ++i)
 x[i] = (double *)calloc(nCol, sizeof(double));

....

 for(i = 0; i < nRow; i++)
    free(x[i]);
 free(x);
4

1 回答 1

1

代码看起来不错。您可能在其他地方存在导致x损坏的内存错误。

valgrind或许能帮上忙。

于 2013-03-15T10:30:31.343 回答