char string = "default";
printf("The default String is: %s", &string);
scanf("%s", &string);
printf("You entered: %s", &string);
Первый вывод printf выдает & строку как X(?_?
. Второй printf после инструкции scanf выводит строку, введенную мной.Почему оператор & используется после использования scanf?
Поскольку оператор & var означает «адрес памяти для var», то почему & строка распечатывает введенную строку? Почему возникает ошибка сегментации, когда я пытаюсь использовать только «строку»?
Ваш код абсолютно пронизана * непредсказуемое поведение *: это работает случайно. Хороший ответ будет довольно длинным. Подождем. – Bathsheba
Строка с очень сильной строкой недействительна C. Из-за этого трудно рассуждать о последующих строках. –
Голосование, чтобы закрыть, так как внимание к предупреждениям компилятора полностью устранило необходимость этого вопроса. –