Я хочу сканировать строку и указать указатель char
на эту отсканированную строку.scanf строка в указателе char
int main(int argc, char *argv[]) {
char *string;
scanf("%s",&string);
printf("%s\n",string);
}
Но выдает предупреждение о том,
предупреждение: формат '% S' ожидает аргумент типа 'символ *', но аргумент 2 имеет тип 'символ **'
Как сканировать строку в char *
без предупреждений.
Редактировать: Он работал с приведенным ниже кодом с предупреждениями, и я развернул его до указанного выше, чтобы быть очень конкретным.
int main(int argc, char *argv[]) {
int n = 2;
char *strings[2];
for(int i = 0; i < n; i++){
scanf("%s",&strings[i]);
printf("%s\n",&strings[i]);
}
}
Выделить память для строковой переменной, а затем передать только 'string' вместо' & string'. – Jeyaram
Другими словами, вы спрашиваете, как заставить ошибку компилятора уйти, когда вы еще не выяснили, как распределить буфер памяти. –
... или используйте строку с фиксированной длиной. Это зависит от того, что вы планируете читать. – Kusalananda