struct stTest
{
long num;
char cc;
};stTest *p=new stTest;
delete p; //在这一行弹出断言失败对话框我知道vc默认设置是结构按8字节对齐,所以p实际占用内存是8字节,
并且后面应该跟着连续4个0xFD,但奇怪的是我调试时并不是这样的,
8个字节后只跟了一个0xFD。如果把设置改为按1字节对齐,上面的代
码没任何问题,p实际占用了5个字节,后面跟着连续4个0xFD。可8字
节对齐为什么就不行呢???是我编译环境设置有问题???
{
long num;
char cc;
};stTest *p=new stTest;
delete p; //在这一行弹出断言失败对话框我知道vc默认设置是结构按8字节对齐,所以p实际占用内存是8字节,
并且后面应该跟着连续4个0xFD,但奇怪的是我调试时并不是这样的,
8个字节后只跟了一个0xFD。如果把设置改为按1字节对齐,上面的代
码没任何问题,p实际占用了5个字节,后面跟着连续4个0xFD。可8字
节对齐为什么就不行呢???是我编译环境设置有问题???
解决方案 »
- 怎么样通过slider控件调节摄像头的亮度和对比度
- 利用Ado打开Access表报内存溢出错误
- 知道一个进程的ID和窗口句柄,如何在另一进程中把此窗口映射进本进程句柄表中,DuplicateHandle似乎不行
- #define BITFVAL(bit, val) ((val) << (bit ## _LSH)),何意?
- 各位兄弟讨论一下,单CPU的电脑上,多进程和多线程哪个效率高一些?
- debug版exe调release版dll库的一个问题
- 怎么样在listctrl控件中能够改变其中一行字的颜色,而其他行颜色不变
- 怎样用API函数改变屏幕的分辩率?(VC)
- [求助]有的电脑里在OnQueryEndSession()里return false不能停止关机
- 如何将qbasic编写的.bas文件转为.exe文件.需要什麽软件?哪里能找到?
- 这些代码都往哪里写? 大狭帮我完善一下,直到能实现功能 谢谢
- 关于日期时间控件问题
stTest*p=new stTest();与stTest*p=new stTest;默认情况下是完全一样的!!!
所以楼上的兄台不要误导
如果你的语句只是一次运行下出现问题,可能是运行环境的异常,或者你用了枪版的VC++,否则,你要考虑设置问题!
restart vs! 不行往下看
restart sys!不行往下看
reinstall vs! 不行往下看
reinstall sys!不行往下看
p 0x00c32e20
num -842150451
cc -51delete p;、以后
- p 0x00c32e20
num -572662307
cc -35 '?
STTEST *p=new STTEST;
delete p;
#pragma pack(1)
struct stTest
{
long num;
char cc;
};
#pragma pack()
看看
如果按上面的顺序,中间没有语句的话,不可能会出错,有可能的是你其他地方内存越界,再就是vs,system有问题了。