2017-04-26 23 views
-4

所以我有一個練習,要求我定義一個具有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]'關閉一個,C使用基於0的索引。另外,你不能分配數組。 –

+0

我怎樣才能分配一個數組結構中的字段? – Adam

回答

1

你可以做到這一點在兩種不同的方式都是正確的:

方法1:

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

方法2:(使用循環)

for (int i = 0; i < length; i++) p.array[i] = array[i];