无法在结构中创建模拟的2D动态数组

董凯文
struct Level_Info
{
  char **Map;
} Level[Level_Amount];

for (int Cnt_1 = 0; Cnt_1 < Level_Amount; Cnt_1++)
{
  Level[Cnt_1].Map = malloc(Rbn_Col * sizeof(char*));
  for (int Cnt_2 = 0; Cnt_2 < Rbn_Col; Cnt_2++)
    Level[Cnt_1].*(Map+Cnt_2) = malloc(Rbn_Row * sizeof(char)); /* line 10 */
}

GCC说:expected identifier before 「*」 token在第10行,那么如何解决呢?

ALK

代替

Level[Cnt_1].*(Map+Cnt_2) = malloc(Rbn_Row * sizeof(char));

*(Level[Cnt_1].Map+Cnt_2) = malloc(Rbn_Row * sizeof(char));

或简单地与

Level[Cnt_1].Map[Cnt_2] = malloc(Rbn_Row * sizeof(char));

由于sizeof(char)定义始终为1,因此您也可以这样做

Level[Cnt_1].Map[Cnt_2] = malloc(Rbn_Row);

或在Map什么方面保持灵活性

Level[Cnt_1].Map[Cnt_2] = malloc(Rbn_Row * sizeof(Level[Cnt_1].Map[Cnt_2][0]));

另外请注意,索引数组的首选类型size_t不是int

因此,您的代码段应如下所示:

struct Level_Info
{
  char ** Map;
} Level[Level_Amount];

for (size_t Cnt_1 = 0; Cnt_1 < Level_Amount; ++Cnt_1)
{
  Level[Cnt_1].Map = malloc(Rbn_Col * sizeof(Level[Cnt_1].Map[0]));

  for (size_t Cnt_2 = 0; Cnt_2 < Rbn_Col; ++Cnt_2)
  {
    Level[Cnt_1].Map[Cnt_2] = malloc(Rbn_Row * sizeof(Level[Cnt_1].Map[Cnt_2][0]));
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何动态创建2D数组?

来自分类Dev

如何对结构的2D动态数组进行排序

来自分类Dev

如何在Rust中的结构内实现动态2D数组?

来自分类Dev

从结构中的2D数组释放动态分配的内存

来自分类Dev

Lisp中的动态2D数组

来自分类Dev

Python 中的动态数组 2D

来自分类Dev

使用C中的动态分配创建2D字符串数组

来自分类Dev

动态创建2D数组红宝石

来自分类Dev

使用指针创建2D动态数组

来自分类Dev

动态创建2D数组红宝石

来自分类Dev

无法在Xcode 7中创建模拟器

来自分类Dev

无法创建for循环以在2D数组中查找数组的元素

来自分类Dev

释放动态2D数组无法在C中按预期方式工作

来自分类Dev

如何使用OpenACC在C中执行结构的2D动态数组的手动深度复制

来自分类Dev

C中结构(2d数组)的静态成员(2d数组)

来自分类Dev

如何在C中填充2D结构数组?

来自分类Dev

在PHP中创建动态数组键结构

来自分类Dev

2D数组与数组结构

来自分类Dev

无法理解使用malloc创建2D数组

来自分类Dev

如何从动态创建的editText框中获取值并将输入的值保存到2d数组中

来自分类Dev

Java:动态调整2D数组中的列的大小

来自分类Dev

在C中动态分配2D数组

来自分类Dev

在C中动态分配2D数组

来自分类Dev

在C ++中动态输入2D字符数组

来自分类Dev

在2D动态数组中填充数据

来自分类Dev

Cython中动态数组的2D MemoryView

来自分类Dev

在C中动态调整大小的2d char数组?

来自分类Dev

Java:动态调整2D数组中的列的大小

来自分类Dev

googlemock:无法创建模拟类的对象