c指针溢出问题
刚刚那个怎么被结贴了啊,那我来开个吧。
C/C++ code:
char a='s';
char str[8]="Hello123";
printf("%c", a); //还是S,为什么?
printf("\n%08X %08X\n",&a,&str[8]); //输出一样的地址
上面Hello123后面不是还有'\0',为什么不把a里面的值给挤掉?
char str[8]="Hello123";
你规定了数组大小呀,把数组大小去掉试试
LZ用什么编译器编译通过的?
没问题啊,我不是结果都贴出来了。
用vc编译的
我就是想看看溢出的时候什么样子的。
&str[8]越界了
没看清出lz的问题,a和str[8]的空间分布由编译器决定,实际上有时编译器的优化会让debug版本和release版本的空间分布不一样。
如果想深入了解编译器的话,可以看一下编译方面的书籍,讨论这个问题由于要考虑多个平台以及优化机制的不同,不建议深入。
知道,我就是想问为什么数组后面的'\0'不会把a里面的值清掉。
在调试窗口里面打开汇编代码看一下不就什么都明白了吗?
相关问答:
在ue中从远程unix用二进制方式下载c文件到本地,修改之后用二进制方式上传到unix中,再用vi打开该文件,每行后面就会有一个^M的换行符,如果采用ascii方式下载,二进制方式上传的话就没有^M,那请问这样会对程序文件 ......
编写一个程序用链表实现:将一个升序整数数列的重复数据去掉
编好后,结果不对啊,求助c高手
#include <stdio.h>
#include <stdlib.h>
struct link
{
int number;
s ......
下面是我写的关于高斯列主消元法的C程序实现方法。但是求解结果始终不正确啊!检查很久了,还是检查不出来,麻烦哪位大哥给指点下吧!先O(∩_∩)O谢谢了!
程序代码:
C/C++ code:
#include <stdio.h ......