c语言,对结构体中的整型数组进行赋值.....

c语言中,在结构体里声明整型数组,想对整型数组赋值,只能用循环吗?如果我想这样呢.....
typedef struct Data
{
int arr[10];
}Data;
int main()
{
Data data;
data = (Data
)malloc(sizeof(Data));
data->arr[10]={1,3,2,4,5,6,7,8,9,0};

.
...
... ...
}

这样可以吗?

5个回答

绝对不可以。数组作为结构体成员,结构体已经初始化了,成员也已经初始化了,这是初始化的语法,不是赋值的语法。

兄弟,建议你使用 Date date = {{1,2,3,4,5,6,7,8,9,10 }};
使用malloc返回的是开辟空间的首地址,得要用的话,建议 Date date ,*dp = &date; *dap = malloc(sizeof(int)*10);
结构体变量访问只能用 点,而且结构体仅能在初始化的时候不整体初始化,后面不能整体初始化,但可以通过结构体之间互相赋值初始化。

如果不想用循环的话,也可以用memcpy
Data data;
int temp[10] = {1,3,2,4,5,6,7,8,9,0};
memcpy(data.arr, temp, 10*sizeof(int));


这样子是不行的,而且你的写法本身就有问题

这样的:data->arr[10]={1,3,2,4,5,6,7,8,9,0}; 格式,只有在定义数组时使用。
数组定义后,就不能再这样赋值了,只能一个个下标去赋值;或者对数组按指针操作,完成内存块的赋值。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐