Я пытался написать функцию, которая принимает данные без заданной длины.Это работает, когда я пытаюсь получить один вход, но если я хочу получить несколько входов, я получаю segfault.Ниже приведен код:
char* getinput()
{
char c,*str=0,*tmp=0;
int i=0;
while(c)
{
c=getchar();
if(c!=EOF && c!='\n')
{
if(!(tmp=realloc(str,(i+1)*sizeof(char))))
{
free(str);
return NULL;
}
str=tmp;
str[i++]=c;
}
else c=0;
}
str[i]=0;
return str;
}
Когда я пытаюсь получить один вход, я могу напечатать строку:
string1
string1
Когда я пытаюсь получить несколько входов, я не могу:
string1
Segmentation fault (core dumped)
Есть еще одна переменная string2.Я ценю любую помощь.Спасибо.