如何初始化结构中的数组字段?

时间:2017-04-26 17:56:42

标签: c

所以我有一个习惯要求我定义一个有两个字段的结构:一个字段用于存储已定义大小的数组,一个字段用于存储数组的长度。然后我必须定义一个函数,它应该初始化结构中的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 个答案:

答案 0 :(得分:1)

你可以用两种不同的方式做到这两点:

方法1:

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

方法2 :(使用循环)

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