csdnliming147
蚂蚁de臂膀
采纳率69.2%
2015-09-12 00:52

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条回答

  • sunnyleevip sunnyleevip 6年前

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

    点赞 1 评论 复制链接分享
  • u012533669 奔跑的奶酪 6年前

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

    点赞 1 评论 复制链接分享
  • u011348999 Cloud_Castle 6年前

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

    
    
    点赞 1 评论 复制链接分享
  • 91program 91program 6年前

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

    点赞 评论 复制链接分享
  • u010214991 _H_JY 6年前

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

    点赞 评论 复制链接分享

相关推荐