2013-03-15 65 views
2

我得到的錯誤消息, *捉住段錯誤*地址0x10的,因爲當我在Linux中使用的.C函數R「存儲器未被映射」 。我檢查是否有錯誤 與指針的分配和釋放,但我目前找不到任何錯誤。 奇怪的是,我可以在Windows中執行R中的.c函數。陷入段錯誤(R呼叫C)

感謝您的幫助。

P.S. 這裏是我的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); 
+0

你顯然沒有看到代碼出錯的地方,那麼爲什麼只發布部分代碼呢? – 2013-03-15 18:34:48

回答

1

的代碼看起來不錯。您可能在其他地方有內存錯誤,導致x被破壞。

valgrind可能會有所幫助。