2013-03-15 3 views
2

J'ai reçu le message d'erreur, * * pris segfault adresse 0x10, la cause 'mémoire non cartographié' quand je la fonction .c dans R sous Linux. J'ai vérifié s'il y a quelque chose qui ne va pas avec l'allocation et la désallocation des pointeurs, mais je ne peux pas trouver de bugs jusqu'à présent. Et c'est bizarre que je puisse exécuter la fonction .c dans R sous Windows.Pris segfault (appel R C)

Merci pour votre aide.

P.S. Voici une partie de l'allocation et désallocation des pointeurs dans mon code 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

Vous ne voyez évidemment pas où le code va mal, alors pourquoi ne publiez-vous qu'une partie du code? –

Répondre

1

Le code semble bien. Vous avez probablement un bug de mémoire ailleurs qui entraîne x être corrompu.

valgrind peut être en mesure de vous aider.