最近、私はCでコードをやっているとき、私は次のように2次元配列を宣言必要があります。二次元のChar配列
char foo[20][20];
後、私はfoo
にして文字配列を割り当てます。
その後、これらの文字列を他の変数にコピーする必要があります。
コピーはこのように書きます:foo[0]
、foo[1]
、foo[6]
とfoo[2]
のようにコピーしている間、私は順序を維持していなかったので
strcpy(date, foo[0]);
strcpy(name, foo[1]);
strcpy(des, foo[6]);
strcpy(cpy, foo[2]);
、私は元の文字列と一緒にp3
にいくつかのゴミを得ました。
後で、コピー時にfoo[0]
、foo[1]
、foo[2]
、foo[6]
にシーケンスを修正しました。期待した結果が得られました。
これを明確にしてください。
実際、ポインタp1、p2、p3およびp4は構造内の変数です。 構造は同類を行く:
struct sample
{
char date[9];
char name[8];
char des[8];
char cpy[9];
};
これらの 'p'文字列にはスペースが割り当てられていますか?あなたの例では法的な構文ではないので、実際のコードではないことは明らかです。 –
完全なコードを投稿できる方が良いでしょう。 – Jay
実際のコードを投稿し、fooがどのように初期化されるかを示します。 –