小编rog*_*les的帖子

使用大括号将数据分配给数组

在C语言中,为什么以下表达式失败?

map = malloc(sizeof(Map) * tiles);
map = {
    0,2,0,0,0,0,0,0,2,0,
    0,1,0,0,0,0,0,0,1,0,
    0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,
    2,1,0,0,0,0,0,0,1,2,
    0,0,0,0,0,0,0,0,0,0
};
Run Code Online (Sandbox Code Playgroud)

我只想将这种"行/列"格式的数据填充到C数组中.但是,编译器失败了

error: expected expression before ‘{’ token
Run Code Online (Sandbox Code Playgroud)

(在map = {line).以其他方式填充数组工作正常,我确信括号适用于初始化...我分配内存后我不能这样做?

编辑:我通过创建一个临时字符数组,然后在for循环中将数据提供给malloced映射来解决它.仍然.我想知道为什么上面的代码会泄漏内存,如下所示.我的修复(解析临时数组并用它设置地图数据)也会泄漏内存吗?

c arrays malloc

6
推荐指数
1
解决办法
9614
查看次数

标签 统计

arrays ×1

c ×1

malloc ×1