Вот мой код:C - Как читать строку с неизвестной длиной
int main() {
int i=0;
int size=1;
char *pntName=NULL;//a pointer to an array of chars.
pntName = (char*) malloc(size *sizeof(char));//allocate sapce for the first char.
while(pntName[size-1]!=':'){
if(pntName!=NULL)//check the case couldn't allocate
printf("Error");
else{
if(i<size){//meaning there is space for new char.
scanf("%c",&pntName[i]);
i++;
}
else{//case we don't have enough space
size++;
pntName = (char*)realloc(pntName,(size)*sizeof(char));//reallocat space.
scanf("%c",&pntName[i]);
i++;
}
}
}
return 1;
}
я пытаюсь прочитать строку, которая содержит имя. Пользователь может вводить символы, пока он не введет ':'. Что случилось с моим кодом?
С какой проблемой вы сталкиваетесь? – alk
вы не должны приводить результаты malloc в c, также, пожалуйста, дайте нам некоторые неожиданные результаты, с которыми вы сталкиваетесь –
И 'sizeof (char)' не может отличаться от '1'. Использовать это ерунда. – Olaf