私は次のように定義された文字配列を持っていますchar *c[20];
:strcpy(c[k], "undefined);
char c[20][70]
また、運が悪いと定義しようとしました。
編集:実際には、それが文字配列の配列であることを知っています。そのようにする必要があります。
これは文字配列ではありません。これは文字ポインタの配列です。を削除し*
て文字配列にします。
char c[20];
次に、strcpy を使用できます。
strcpy(c, "undefined");
文字配列の配列が本当に必要な場合は、試したと言ったことを実行する必要があります。
// array that holds 20 arrays that can hold up to 70 chars each
char c[20][70];
// copy "undefined" into the third element
strcpy(c[2], "undefined");
問題は、あなたがクロージング"
を見逃していた可能性がありますが、それが貼り付けエラーであったかどうかはわかりません。または、問題は、k
それを定義せずに使用している可能性があり、表示されるエラー メッセージを見ないとわかりません。
それらをすべてその文字列に設定したい場合は、それらをループするだけです:
char c[20][70];
int i;
for (i = 0; i < 20; ++i)
strcpy(c[i], "undefined");
それぞれ 70 文字の 20 個の文字列が必要な場合は、2 番目のオプションが機能するはずです。
char c[20][70];
for (int k = 0; k < 20; k++)
strcpy(c[k], "undefined");
char *c[20]
20 個のポインターの配列を定義しているだけであり、ポインターが初期化されていないため、定義は正しくありません。次の方法で機能させることができます。
char *c[20];
for (int k = 0; k < 20; k++) {
c[k] = malloc(70);
strcpy(c[k], "undefined");
}
// then when you are done with these strings
for (int k = 0; k < 20; k++)
free(c[k]);