10 个解决方案
#1
看你怎么调试的了,当前的这个值 是在某处打的断点的值吗?
#2
直接运行 到这里中断了
#3
你的断点是停在 p = head 那里吗?
按 F11 执行后 p 的值就会变了
按 F11 执行后 p 的值就会变了
#4
当我上面的没说~~~~~代码没看清楚!
你的这情况还真没发生过
你的这情况还真没发生过
#5
你确定是在那一行中断了?
0xcdcdcdcd这根本就是还没有初始化,连p = NULL那一行都没有执行
0xcdcdcdcd这根本就是还没有初始化,连p = NULL那一行都没有执行
#6
是O2/O3编译优化吗?
代码重排 或 代码精简 会造成这个结果
代码重排 或 代码精简 会造成这个结果
#7
在p=head之后加上一句
printf("%x, %x, =? %d\n", head, p, head == p ? 1 : 0);
#8
在那一行中断在我使用的IDE中代表那一行还未执行,要在它的下一行中断才得到执行这一行之后的结果.
#9
你确定 程序已经执行到p=head这句了吗? 如果没有, 那是正常的.
如果已经执行到了, 那么
怀疑你是在release模式下调试的.
debug版执行到 p=head, p应该是NULL.
如果已经执行到了, 那么
怀疑你是在release模式下调试的.
debug版执行到 p=head, p应该是NULL.
#10
你执行位置过了赋值的地方没
#1
看你怎么调试的了,当前的这个值 是在某处打的断点的值吗?
#2
直接运行 到这里中断了
#3
你的断点是停在 p = head 那里吗?
按 F11 执行后 p 的值就会变了
按 F11 执行后 p 的值就会变了
#4
当我上面的没说~~~~~代码没看清楚!
你的这情况还真没发生过
你的这情况还真没发生过
#5
你确定是在那一行中断了?
0xcdcdcdcd这根本就是还没有初始化,连p = NULL那一行都没有执行
0xcdcdcdcd这根本就是还没有初始化,连p = NULL那一行都没有执行
#6
是O2/O3编译优化吗?
代码重排 或 代码精简 会造成这个结果
代码重排 或 代码精简 会造成这个结果
#7
在p=head之后加上一句
printf("%x, %x, =? %d\n", head, p, head == p ? 1 : 0);
#8
在那一行中断在我使用的IDE中代表那一行还未执行,要在它的下一行中断才得到执行这一行之后的结果.
#9
你确定 程序已经执行到p=head这句了吗? 如果没有, 那是正常的.
如果已经执行到了, 那么
怀疑你是在release模式下调试的.
debug版执行到 p=head, p应该是NULL.
如果已经执行到了, 那么
怀疑你是在release模式下调试的.
debug版执行到 p=head, p应该是NULL.
#10
你执行位置过了赋值的地方没