Когда я пытаюсь передать указатель malloc
'd char от main
для использования в user_input
, чтобы получить в нем строку. После выполнения цикла while я пытаюсь напечатать filename
. filename
заканчивается, чтобы быть пустым, когда он должен содержать допустимую строку.Передача указателя указателя Malloc для функции
void user_input(char *filename){
char ch;
int i = 0;
printf("Fil att leta i: ");
while((ch = getchar()) == '\n'){
filename = realloc(filename, (i+1) * sizeof(char));
filename[i] = ch;
i++;
}
filename[i] = '\0';
printf("filnamn = %s", filename);
}
int main(void){
char *filename;
filename = (char *)malloc(sizeof(char));
user_input(filename);
return 0;
}
Вы знаете, 'sizeof (char)' определяется как 1. Нет абсолютно никаких оснований спрашивать, является ли 'char' более чем одним' char' большим. – Deduplicator