когда дело доходит до 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 (табуляции), записываемой в терминале.Кстати, я получаю сообщение об ошибке: Обнаружено разрушение стека *: ./afile прекращено Ошибка сегментации