2017-04-26 10 views
-4

私は2つのフィールドを持つ構造体を定義するよう求めています:既に定義されたサイズの配列を格納する1つのフィールド、配列の長さを格納する1つのフィールド。次に、構造体の2つのフィールドを初期化する関数と、2つのフィールドを出力する関数を定義する必要があります。 プログラミングの初心者ですが、コードを記述しようとしていますが、作業。助けを前にありがとう。構造内の配列フィールドを初期化する方法は?

#include<stdio.h> 
#include<string.h> 
#define SIZE 10 
typedef struct stdata data{ 
    int array[SIZE]; 
    int length; 
} 
void initialize (int array[],int length){ 
    data p; 
    p.array[SIZE]=array; 
    p.length=length; 
} 
void print(data p){ 
    printf("%d %d ",p.array,p.length); 
} 
+1

ヒント:チェック'p.array'のデータ型... –

+0

' p.array [SIZE] 'が1つずれています.Cは0ベースのインデックスを使用しています。配列を割り当てることはできません。 –

+0

構造体のフィールドにどのように配列を割り当てることができますか? – Adam

答えて

1

次の2つの異なる方法でそれを行うことができます両方が正しいです:

方法1:

memcpy(p.array, array, sizeof(int) * length); 

方法2:(ループを使用して)

for (int i = 0; i < length; i++) p.array[i] = array[i]; 
関連する問題