gpt4 book ai didi

c - 索引在 for 循环内显示 NULL

转载 作者:行者123 更新时间:2023-11-30 19:07:36 32 4
gpt4 key购买 nike

我想要矩阵相乘。我通过 malloc() 函数创建矩阵。索引(名为 i 的变量)显示 NULL,而不是数字

int** matrix_a = (int**)malloc(lines * sizeof(int*));
for (int i = 0; i < lines; i++) {
if (i == NULL)
printf("'i' is NULL!");
matrix_a[i] = (int*)malloc(trans * sizeof(int*));
}

输出:

'i' is NULL!

错误:

Unhandled exception at 0x00007FF6003C35BB in MPI_C.exe: 0xC0000005: Access violation writing location 0xFFFFFFFFABA57A00.

最佳答案

将非指针与 NULL 进行比较是没有意义的。 NULL 宏扩展为整数常量 0,可能会转换为 (void *)

在前一种情况下,您的代码仅检查 if (i == 0),这在循环的第一次迭代中为 true。在后一种情况下,您正在执行 if (i == ((void *)0)),您的编译器应该会提示它,因为这是一个类型错误。

仅使用NULL作为指针值,而不是数字。

关于c - 索引在 for 循环内显示 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46631564/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com