gpt4 book ai didi

c - ANSI C 程序错误 : pointer address initializes fine, 然后在 if 语句后更改为 0x0

转载 作者:太空宇宙 更新时间:2023-11-04 00:26:33 24 4
gpt4 key购买 nike

我在 Linux CentOS 64 位计算机中有一个 ANSI C 程序,其中包含以下行:

H1_real = malloc(len_SPURFREQ_TIE * sizeof(double)); /* allocate memory */
H1_imag = malloc(len_SPURFREQ_TIE * sizeof(double)); /* allocate memory */
H2_real = malloc(len_SPURFREQ_TIE * sizeof(double)); /* allocate memory */
H2_imag = malloc(len_SPURFREQ_TIE * sizeof(double)); /* allocate memory */
H3_real = malloc(len_SPURFREQ_TIE * sizeof(double)); /* allocate memory */
H3_imag = malloc(len_SPURFREQ_TIE * sizeof(double)); /* allocate memory */

if ( (H1_real == NULL) || (H1_imag == NULL) || (H2_real == NULL) || (H2_imag == NULL) || (H3_real == NULL) || (H3_imag = NULL) ) {
exit(6);
}

当我使用 gdb 检查 H1_real 到 H3_imag 的分配地址时,它们看起来很好。 if 语句也执行得很好,因为 exit(6) 没有被触发。但是在 if 语句执行后检查 H3_imag 地址时,它现在读取 0x0。有人知道会发生什么吗?

最佳答案

H3_imag = NULL

应该是:

H3_imag == NULL

关于c - ANSI C 程序错误 : pointer address initializes fine, 然后在 if 语句后更改为 0x0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8569309/

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