Каждый раз, когда я пытаюсь это сделать, я получаю ошибку сегментации. Это действительно беспокоило меня, потому что это было довольно сложное задание и его последнее, потому что я не могу это исправить. Я получаю ошибку сегментации, когда пытаюсь запустить parseInputStream. Я попытался изменить указатель файла на указатель на указатель файла, но я все еще получаю ошибку сегментации. Консоль печатает все ns, но ни один из ws. Помоги пожалуйста.C Ошибка сегментации при передаче указателя файла на метод
void parseInputStream(FILE *file, FILE *infile){
printf("w\n");
char string[9999999];
while(fscanf(infile, "%s", &string)!= EOF){
printf("w\n");
if(string[0] == ';'){
fgets(string, 9999999, infile);
continue;
}
parseInput(file, infile, string);
}
int main(int argc, char* argv[]){
printf("n\n");
FILE *file = fopen("intest.asm", "w");
printf("n\n");
FILE *infile = fopen("intest.j", "r");
printf("n\n");
parseInputStream(file, infile);
fclose(infile);
fclose(file);
return 0;
}
максимальных стек допустимого размер обычно составляет около 8 МБ в размере, по крайней мере, при распределении/Linux GNU, она может меняться, но это, вероятно, не будет, что большое , – user2485710
Использование 'scanf' и' fgets' в том же потоке связано с [причиной проблем] (http://stackoverflow.com/questions/5918079/fgets-doesnt-work-after-scanf). Кроме того: вы передаете '& infile' (' ФАЙЛ ** ') в' fgets', ваш компилятор должен жаловаться на это. – Kninnug