2011-11-13 11 views
0

可能性の重複:( - ID及びチャー - DAT INT)
Cで構造体の配列を作成していますか?

Defining an array of structures in C?

は、私は2つのフィールドを持つ構造データを有しています。

DATA *current = malloc(sizeof(DATA)); 

そして、すべてのフィールドを割り当てる:

私はそれにメモリを割り当てる

current->id = 1; 
current->dat = a; 

私がするかどうかはわからない何を...私は初期化されたデータをどのように追加することです(DATA lstData [100]として宣言されている)データの配列


にまた、以前の質問をするから、私はLを感じます私は100データ要素の静的配列を持っているので、私はこの場合mallocする必要はないでしょうか?その場合、次のコードは失敗します。

lstProc[10]->id = 1; //Error: Program received signal: "EXC_BAD_ACCESS" 
+2

あなたの前のもの。最初から新しいものを作成するのではなく、その質問を編集してきれいにする必要があります – hugomg

+0

アレイの初期化を投稿できますか? 使用する演算子( - >または。)は、DATA構造体へのポインタの配列を定義するか、Data Structの配列を直接定義するかによって異なります。 – robustus

答えて

1

あなたは正しいです。 mallocする必要はありません。あなたは、いないデータへのポインタのデータ構造の静的な配列を持っている場合は、特定のデータメンバにアクセスするためにドットを使用する必要が

lstProc[10].id = 1; 
+0

配列をグローバルにするには、ヘッダーファイルでDATA lstData [0]として定義してから、もう一度、メインで、実際に(ユーザー入力から)サイズを知っていれば、そこに定義しますか? DATA lstData [inpputSize] –

1

あなたは、構造体(ない構造体へのポインタ)、使用の配列を持っているので、
lstProc[10].id = 1; 

そして、あなたの元の質問に答える:この質問は似にある(あっても同じタイトルを持つ)

memcpy(&(lstProc[10]), current, sizeof(DATA));