когда дело доходит до C, я не нуб - я больше похож на полного и полного тупого невежественного нуба! я пытаюсь написать программу для анализа простых текстовых файлов, и я хотел бы сделать ее как можно более общей (почему я использую getline). ну вот мой код:
//afile.c
#include <stdio.h>
#include <stdlib.h>
main( )
{FILE *fp1;
char *filename;
char **line;
size_t *sz;
int s;
filename = "n";
if ((fp1 = fopen(filename,"r")) == NULL ){printf("error...");return 1;}
do {
s = getline(&line,sz,fp1);
if (s != -1)
printf(" %s \n",line);//<-- %s seems to be wrong! %*s removes the gcc warning
} while (s != EOF);
fclose(fp1);}
Я почти уверен, что это какая-то проблема с распределением указателей, но я действительно не могу понять, где она. я обнаружил, что замена %s на %s приводит к исчезновению предупреждения компилятора, но в результате в терминале записывается бесконечное количество \t(tabs). Между прочим, сообщение об ошибке, которое я получаю: обнаружен сбой стека *: ./afile завершен Ошибка сегментации
line = NULL
- person wildplasser   schedule 28.01.2012