Я пытаюсь прочитать строку из stdin с помощью fgets(), я хочу использовать функцию fgets() в моей функции, которая, по моему мнению, является проблемой. Строка может быть не более 1024 символов. Когда я запускаю этот код я получаю «ошибка сегментации (ядро сбрасывали)»C - читать строку из stdin с функцией fgets() в функции
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 1025
void print_fgets();
int main()
{
print_select();
return 0;
}
void print_select()
{
char *str;
int length;
while (fgets(str, MAX_SIZE, stdin)!=NULL)
{
length=strlen(str);
if (length==MAX_SIZE-1 && str[length-1]!='\n')
{
printf("Error, line overeached buffer!\n");
return 1;
}
if (str[length-1]=='\n')
str[length-1]='\0';
printf("%s\n", str);
}
}
где вы? – HuStmpHrrr
вы не выделили память для 'str'. вот почему. – HuStmpHrrr
Как выделить память? Я новичок в C. – Krop