我应该在C中2D数组的malloc和calloc之后检查NULL指针吗?

陶马豪斯

好的,我知道在分配内存时应该检查NULL指针,但是calloc呢?是否有可能发生内存泄漏?

int **initializeMatrix(int *rows, int *cols) {
    int **matrix = malloc((*rows) * sizeof(int*));
    checkNullPointer(matrix);
    for(int i = 0; i < *rows; i++) {
        matrix[i] = calloc(*cols, sizeof(int));
    }

    return matrix;
}

void checkNullPointer(int **ptr) {
    if (ptr == NULL)
        printErrorMessage(memoryErrorMessage, 101);
}
拔示巴

事实上,你确实需要检查返回值calloc(这将是NULL,如果内存无法分配),但请注意,调用free上一个NULL指针是一个空操作,所以没有直接的内存泄漏本身。

当然,遇到NULL返回后进行清理时,您需要调用从成功调用中产生的free所有非NULL指针calloc就个人而言,我也将调用calloc行分配来简化该过程。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我应该在C中的basename / dirname之后释放strdup指针吗?

来自分类Dev

我应该在malloc()之后在子函数中使用free()吗?

来自分类Dev

应该在2D数组中计数相邻单元格的类在C#中无法正确计数

来自分类Java

我应该在Java中移位除以2吗?

来自分类Dev

我应该在C ++中删除静态对象吗

来自分类Dev

如果数组之前是数组,我应该在array_unique之后使用asort吗?

来自分类Dev

使用malloc和calloc创建2D数组

来自分类Dev

我应该在Ruby中的File.read和File.open之后销毁File对象吗?

来自分类Python

我应该在try / except之后使用final吗?

来自分类Dev

我应该在 Akka 流中的 Kafka 源之后添加缓冲区吗

来自分类Dev

我应该在v8 :: External中手动删除指针吗?

来自分类Dev

我应该在我的本机git repo中检查这个android文件夹吗?

来自分类Dev

在 c typedef 中,变量名不应该在括号之后吗?

来自分类Dev

我应该在redis multi事务的每个步骤中检查错误吗?

来自分类Dev

我是否应该在非基于网格的A *算法中存储2d点之间的距离

来自分类Dev

我应该在Angular 2的angular-cli或index.html中包含css和js吗?

来自分类Dev

我应该在Main的args数组中测试值的无效性吗

来自分类Dev

我应该在useCallback的依赖项数组中包含setState吗?

来自分类Dev

我可以并且应该在GWT中测试fireEvent和Handlers方法吗?

来自分类Java

我应该在JPA实体中编写equals()和hashCode()方法吗?

来自分类Dev

我应该在JavaScript中嵌套构造函数和原型吗?

来自分类Dev

我应该在域类中实现equals和hashCode吗?

来自分类Java

即使未添加任何内容,我也应该在子类中覆盖equals和hashCode吗?

来自分类Dev

我应该在CocoaPods依赖项中添加Foundation和其他标准框架吗?

来自分类Dev

我应该在依赖项中添加recyclerView和CardView吗?

来自分类Dev

是否应该在C#7中使用==或'is'检查null?

来自分类Dev

我应该在virtualenv中pip install python吗?

来自分类Dev

我应该在备份中包含/ dev吗?

来自分类Dev

我应该在virtualenv中安装python 3吗?

Related 相关文章

  1. 1

    我应该在C中的basename / dirname之后释放strdup指针吗?

  2. 2

    我应该在malloc()之后在子函数中使用free()吗?

  3. 3

    应该在2D数组中计数相邻单元格的类在C#中无法正确计数

  4. 4

    我应该在Java中移位除以2吗?

  5. 5

    我应该在C ++中删除静态对象吗

  6. 6

    如果数组之前是数组,我应该在array_unique之后使用asort吗?

  7. 7

    使用malloc和calloc创建2D数组

  8. 8

    我应该在Ruby中的File.read和File.open之后销毁File对象吗?

  9. 9

    我应该在try / except之后使用final吗?

  10. 10

    我应该在 Akka 流中的 Kafka 源之后添加缓冲区吗

  11. 11

    我应该在v8 :: External中手动删除指针吗?

  12. 12

    我应该在我的本机git repo中检查这个android文件夹吗?

  13. 13

    在 c typedef 中,变量名不应该在括号之后吗?

  14. 14

    我应该在redis multi事务的每个步骤中检查错误吗?

  15. 15

    我是否应该在非基于网格的A *算法中存储2d点之间的距离

  16. 16

    我应该在Angular 2的angular-cli或index.html中包含css和js吗?

  17. 17

    我应该在Main的args数组中测试值的无效性吗

  18. 18

    我应该在useCallback的依赖项数组中包含setState吗?

  19. 19

    我可以并且应该在GWT中测试fireEvent和Handlers方法吗?

  20. 20

    我应该在JPA实体中编写equals()和hashCode()方法吗?

  21. 21

    我应该在JavaScript中嵌套构造函数和原型吗?

  22. 22

    我应该在域类中实现equals和hashCode吗?

  23. 23

    即使未添加任何内容,我也应该在子类中覆盖equals和hashCode吗?

  24. 24

    我应该在CocoaPods依赖项中添加Foundation和其他标准框架吗?

  25. 25

    我应该在依赖项中添加recyclerView和CardView吗?

  26. 26

    是否应该在C#7中使用==或'is'检查null?

  27. 27

    我应该在virtualenv中pip install python吗?

  28. 28

    我应该在备份中包含/ dev吗?

  29. 29

    我应该在virtualenv中安装python 3吗?

热门标签

归档