为了账号安全,请及时绑定邮箱和手机立即绑定

初始化可变长度数组

初始化可变长度数组

C
沧海一幻觉 2019-11-19 15:18:08
初始化可变长度数组编译器时,将显示错误消息:[Error] variable-sized object may not be initialized  程式码片段:int n; printf("Enter size of magic square: ");scanf("%d",&n);int board[n][n] = {0};可变长度数组应如何初始化?以及为什么所有元素都没有0按照下面的方式初始化;   int board[n][n];   board[n][n] = {0};?
查看完整描述

3 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

无法通过任何形式的初始化语法来初始化 VLA 。在声明之后,您必须以自己喜欢的任何方式将初始值分配给数组元素。


C11:6.7.9初始化(p2和p3):

初始化程序不得尝试为未包含在正在初始化的实体中的对象提供值。


要初始化的实体的类型应为未知大小的数组或不是可变长度数组类型的完整对象类型。


查看完整回答
反对 回复 2019-11-19
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

您必须使用memset:


memset(board, 0, sizeof board);


查看完整回答
反对 回复 2019-11-19
  • 3 回答
  • 0 关注
  • 564 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信