如何使用自定义类型malloc()?

达里尔纳克

在头文件 - gameboard.h - 我有一个名为gameboard的结构在这个结构中我声明square **squares,其中 squares 如下:typedef enum {EMPTY, RED_COIN, YELLOW_COIN} square;

在 gameboard.c 中,我有一个为二维数组分配内存的函数。在这个函数中,我声明gameboard* result.

问题:创建初始数组时,即存储数组的二维部分,为什么我不能这样做:

result->squares = malloc(numRows * sizeof(result->square*));

更具体地说,为什么square是无效类型?

蚂蚁

您不能“这样做”,因为您的result->square子表达式无效。result->squares将是有效的。平原square也将有效。result->square完全没有意义。C->中的成员访问运算符。并且您的结构类型没有名为square.

  • 用于malloc-ing 对象数组的典型/惯用 C 代码如下所示

    some_pointer = malloc(n_elements * sizeof *some_pointer);
    

    将此应用于您的案例,我们得到

    result->squares = malloc(numRows * sizeof *result->squares);
    
  • 如果您result->squares有类型square **,那么适当的大小也可以表示sizeof(array_element_type)

    result->squares = malloc(numRows * sizeof(squares *));
    

    但是前一个(类型不可知)变体可以说比后一个版本更好,特别是对于类型不可知。另请参阅:为什么在 malloc 中使用 sizeof(*pointer) 更安全

sizeof(result->square*)完全不清楚如何到达的您的变体看起来像是两者的奇怪混合体,以不正确且毫无意义的方式编写。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在保留类型自定义的同时使用AutoFixture构建自定义属性?

来自分类Dev

如何使用 ACF 为自定义帖子类型创建自定义端点?

来自分类Dev

如何添加自定义类型定义?

来自分类Dev

如何添加自定义类型定义?

来自分类Dev

如何使用NSLog输出自定义类型的值?

来自分类Dev

如何为@PathParam使用自定义类型?

来自分类Dev

如何通过jOOQ使用自定义SGBD类型

来自分类Dev

如何在Java中使用自定义类型注释

来自分类Dev

如何使用自定义应用类型代替IO?

来自分类Dev

如何通过jOOQ使用自定义SGBD类型

来自分类Dev

如何在猫鼬中使用自定义类型?

来自分类Dev

如何在 ConfigurationSection 中使用自定义类型的值?

来自分类Dev

如何使用自定义类型声明 Arduino 数组?

来自分类Dev

自定义malloc实现

来自分类Dev

如何删除此自定义类型?

来自分类Dev

如何创建自定义属性类型

来自分类Dev

如何使bean作为自定义类型?

来自分类Dev

使用HttpClient发布自定义类型

来自分类Dev

使用typedef自定义内置类型

来自分类Dev

使用CSS自定义类型输入

来自分类Dev

使用自定义媒体类型的Restlet

来自分类Dev

使用自定义堆的类似于malloc的函数

来自分类Dev

如何在TypeScript中使用预定义的可接受值正确声明自定义类型?

来自分类Dev

如何使用 oo7 Substrate 库定义自定义类型?

来自分类Dev

如何在Go中创建自定义类型元素的自定义类型数组?

来自分类Dev

如何遍历自定义类型并找到特定类型?

来自分类Dev

如何使JOOQ生成枚举类型和自定义类型?

来自分类Dev

如何遍历自定义类型并找到特定类型?

来自分类Dev

如何定义自定义对象文字的函数返回类型

Related 相关文章

热门标签

归档