2017-04-26 107 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];