Редактировать: по запросу Я включил код в «led». Тем не менее, он никогда не запускался - ни один из них, даже не приветствующий мир printf, как первая строка, поэтому я уверен, что проблема никогда не будет в пределах.Ошибка сегментации при вызове функции void
Edit2: по иронии судьбы, это был в функции 'led'. Похоже, я понимаю об этом меньше, чем раньше.
Я пишу для своего текущего проекта в Uni, и никто вокруг меня не может понять эту ошибку сегментации. Это должно быть довольно просто, поэтому я ценю вашу помощь.
код следующим образом:
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
void ledic(FILE *fp){
printf("Hello world\n");
int len;
int j, i, k;
char palavra[30];
char dictionary[30][10000][30];
int VecOcorrencias[30];
for (j=0; j<30; j++)
VecOcorrencias[j]=0;
printf("Hello world\n");
while (fscanf(fp, "%s", palavra) == 1) {
len = strlen(palavra);
k = VecOcorrencias[len];
strcpy (dictionary[len][k], palavra);
VecOcorrencias[len]++;
}
for (i=0; i<1000; i++)
printf("%s %d\n", dictionary[5][i], VecOcorrencias[5]);
}
}
FILE *OpenFile(char *nome, char *mode){
FILE *fp;
fp = fopen (nome, mode);
if(fp == NULL){
printf(" Cant open file\n");
exit(1);
}
return (fp);
}
int main(int argc, char *argv[]){
FILE * fp;
fp = OpenFile(argv[1], "r");
ledic(fp);
return(0);
}
Кодекса перерывы, когда она входит в функцию void ledic(FILE *fp)
, и говорит, что не может получить доступ к памяти (ссылка я полагаю * Fp).
Я не могу для жизни понять, почему. Есть предположения?
Каков код внутри вашей функции '' led''? Пожалуйста, включите это в свой вопрос. – byxor
Вероятно, это что-то, что вы делаете в 'ledic()', что проблематично. Можете ли вы отправить код 'ledic()'? Предпочтительно [MCVE]. – usr
Проблема скорее всего в функции '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' –