使用大括号将数据分配给数组
发布时间:2020-12-16 03:38:43 所属栏目:百科 来源:网络整理
导读:在C语言中,为什么以下表达式失败? map = malloc(sizeof(Map) * tiles);map = { 0,2,1,0}; 我只想将这种“行/列”格式的数据填充到C数组中.但是,编译器失败了 error: expected expression before ‘{’ token (在map = {line).以其他方式填充数组工作正常,我
在C语言中,为什么以下表达式失败?
map = malloc(sizeof(Map) * tiles); map = { 0,2,1,0 }; 我只想将这种“行/列”格式的数据填充到C数组中.但是,编译器失败了 error: expected expression before ‘{’ token (在map = {line).以其他方式填充数组工作正常,我确信括号适用于初始化…我分配内存后我不能这样做? 编辑:我通过创建一个临时字符数组,然后在for循环中将数据提供给malloced映射来解决它. 解决方法
你的地图*地图;是一个指针,而不是一个数组.大括号用于聚合初始化:
int x[3] = { 1,3 }; 指针不是数组,您无法使用聚合初始化语法填充内存. 这是最接近的结构: typedef struct Map_ { int a; int b; } Map; // some struct Map m[] = { {1,2},{3,4},{5,6} }; /* we initialized "Map m[3]",it has automatic storage! */ 请注意,brace-list的每个元素必须自己初始化聚合的基本类型. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |