2017-03-23 7 views
0

Je suis incapable de résoudre cette erreur, s'il vous plaît aidez-moi où je me trompe, aussi s'il vous plaît dites-moi comment utiliser le débogueur GNU parce que quand je l'utilise, "1 L'erreur .c n'est pas un fichier exécutable "se produit.Erreur de destruction de pile détectée en ne déclarant pas tableau correctement

Voici le fichier ADT de mon code: - Sparse.c

Voici mon code: -

char filename[4]; 
int i,j,vectorCount=0; 
refFile=fopen("x3.txt","r"); 
for(i=0; i<=100; i++){ 
    fscanf(refFile,"%f",&x[i].value); 
    x[i].row=i; 
    x[i].col=1; 
} 
for(i=1; i<=10; i++){ 
    sprintf(filename,"data/y%d.txt",i); 
    FILE *fptr=fopen(filename,"r"); 
    y=newSparse(100,1,0); 
    for(j=0; j<100; j++){ 
     fscanf(fptr,"%f",&y[j].value); 
     y[j].row=j+1; 
     y[j].col=1; 
    } 
    if(classCheck(x, y)==1){ 
     vectorCount++; 
    } 
} 
+0

Veuillez poser une question à la fois. –

Répondre

3

Vous déclarez

char filename[4]; 

si filename peut contenir des noms de fichiers jusqu'à 3 caractères (4-1 à cause du terminateur NUL).

et plus tard, vous avez ceci:

sprintf(filename,"data/y%d.txt",i); 

et "data/y%d.txt" est évidemment plus de 3 caractères.

Donc, déclarer char filename[100]; devrait faire le travail.

+0

Merci, ça a marché :) –