文字列をスキャンし、このスキャン文字列のポインタをchar
としたいとします。scanf charポインタの文字列
int main(int argc, char *argv[]) {
char *string;
scanf("%s",&string);
printf("%s\n",string);
}
しかし
'文字**' を入力しているが警告言って警告できます:フォーマット '%s' は型 'のchar *' の引数を期待していますが、引数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