Я пытаюсь прочитать значение пользователя и сохранить его в виде строки.Строка должна содержать все символы перед запятой или концом строки, и она должна выводить либо запятую, либо EOF.
Я пытаюсь прочитать каждый символ и выделить место в строке по мере необходимости, но файл останавливается после прочтения первого ввода.
Это то, что я до сих пор:
char read_data(char** str) {
char c = 'n';
int size = sizeof(**str);
int i = 0;
while (((c = getchar()) != COMMA) && (c != NEWLINE)) {
size += sizeof(c);
*str = (char*) realloc(*str, size + 1);
assert(*str);
*str[i] = c;
i++;
}
*str[i] = '\0'; //terminator
return c;
}
int main(int argc, char const *argv[]) {
char* string = NULL;
char left;
left = read_data(&string);
printf("left: %c\n", left);
printf("string: %s\n", string);
free(string);
return 0;
}
Я не могу понять, почему он ломается.У кого-нибудь были бы какие-нибудь советы / идеи ..?