2017-02-12 8 views
-2

char配列にcharを追加する必要があります。これは私のコードです:Cのchar配列にcharを追加する

#define BUFFSIZE 1024 
char *first_name[][BUFFSIZE]; 
char *last_name[][BUFFSIZE]; 

int j = 0; 
first_name[][j] = "John"; 
last_name[][j] = "Doe"; 

"John"と "Doe"をそれぞれの配列の0番目の位置に入力する正しい方法はありますか?

+1

strcpy' '上に読んでも、おそらくあなたは[BUFFSIZE] CHAR FIRST_NAME'必要があります。 ' –

答えて

0

あなた宣言

char *first_name[][BUFSIZE]; 

ポインタの2次元配列を宣言します。文字列の配列が必要な場合は、次のようにします。

char first_name[][BUFSIZE]; 

ただし、これには最初のディメンションのサイズがありません。サイズを省略すると、関数の宣言でのみ使用できます。これは実際には、ポインタを宣言するための省略形です(ポインタを関数に渡すと配列が消えるため)か、フレキシブルな配列メンバーの宣言になりますstruct)、同じ構造の中に2つを持つことはできません。私はあなたの変数が実際に関数のパラメータであると推測しています。

あなたはstrcpy()を使用する必要があり、Cの文字列を埋めるために割り当てを使用することはできません。

strcpy(first_name[i], "John"); 
+0

私はこれをやってみました。しかし配列はその値を保持していません。 first_nameはforループの内側にあり、3回目または4回目の反復後にfirst_name [0]の値が変化するようです。 –

+0

問題を示す[MCVE](http://stackoverflow.com/help/mcve)を投稿してください。 – Barmar

+0

あなたは質問ではなく、外部のサイトにコードここ https://docs.google.com/document/d/1T4j3S_MEd0EKekMGGKi0z-nQYZVQmou1mUdUrn3x7rE/edit?usp=sharing –