После прохождения нескольких примеров передачи строки по значению в C, я до сих пор не понимаю, почему следующий код не работаетПередача строки по значению в C
int main(void){
char *fileList;
strcpy(fileList,"This is a test line\n");
char type = 'F';
if(checkFileList(fileList, type)){
printf("Proper File list\n");
}
else{
printf("Improper File list\n");
}
}
int checkFileList(char *string, char type){
// Do something with string
}
Эта программа работает, если я определить переменная FileList в основной функции как-
char fileList[128];
Но я не могу предоставить фиксированный размер для этой строки я получаю строку только во время выполнения, и, следовательно, не знаю, как долго это будет.
Что я здесь делаю неправильно? Обратите внимание, что я не хочу передавать строку по ссылке, поскольку я буду изменять строку в этой функции и не хочу, чтобы это отражалось в исходной строке.
И только то, что «строка проход по значению»? Нет такой вещи в C. – Lundin
Может быть, я не знаю правильной терминологии, но я бы хотел, чтобы вызываемая программа использовала копию строки, а не изменяла исходную –
@gaurav, пожалуйста, не редактируйте и не изменяйте вопрос таким образом, который делает существующие аферы недействительными. Всегда *** добавьте *** обновление **, не удаляя ** оригинал. Надеюсь, я поняла. –