社区
C++ 语言
帖子详情
C++ 越界问题
malone1
2011-08-19 10:15:24
struct A
{
int m_b;
int m_c;
}
char * buf= new char;
A * Aptr= (A *)buf;
Aptr->m_b=4;
Aptr->m_c=5;
这样程序虽然可以运行,但是存在越界问题?
...全文
223
16
打赏
收藏
C++ 越界问题
struct A { int m_b; int m_c; } char * buf= new char; A * Aptr= (A *)buf; Aptr->m_b=4; Aptr->m_c=5; 这样程序虽然可以运行,但是存在越界问题?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
malone1
2011-09-05
打赏
举报
回复
Abel Lee
2011-08-19
打赏
举报
回复
轻则程序崩溃,重则系统崩溃,永远记住不要对你不可用的内存赋值!!!
野男孩
2011-08-19
打赏
举报
回复
错误就是错误,没表现出来,那也是错误。别玩火~~
pathuang68
2011-08-19
打赏
举报
回复
buf除了第一个char是可以确定的外,其后的内容皆不能确定。
C和C++给了程序员很多自由,但自由也同时意味着责任。
jernymy
2011-08-19
打赏
举报
回复
等着崩溃吧
turing-complete
2011-08-19
打赏
举报
回复
显然越界了,你是想验证错误,但是没有得到错误吧。 呵呵,这种错误才是最厉害的错误。
品茶
2011-08-19
打赏
举报
回复
等着崩溃吧
至善者善之敌
2011-08-19
打赏
举报
回复
拉登来了。。。
小庙拜大神
一叶之舟
2011-08-19
打赏
举报
回复
当然了,A占8个字节,new char;只分配了一个字节,肯定会越界。
可以这样做:
char * buf= new char[sizeof(A)];
A * Aptr= (A *)buf;
Aptr->m_b=4;
Aptr->m_c=5;
xiaoguangzaia
2011-08-19
打赏
举报
回复
只申请了sizeof(char)大小的内存
实际操作了sizeof(A)大小
gykgod
2011-08-19
打赏
举报
回复
LZ 您是对的
可能会写非法内存
buf只有一个字节是合法的 往这个字节后面再写就写到别人那里了 覆盖了别的数据
珍惜生命远离CPP
2011-08-19
打赏
举报
回复
是,越界了
后果未知
再次启程
2011-08-19
打赏
举报
回复
越界了,这样可能无意中修改了某些未知的量,造成不可预测的后果
Saingel
2011-08-19
打赏
举报
回复
既然LZ这样写,那个性到底
char * buf= new char[sizeof(A)];
v_table
2011-08-19
打赏
举报
回复
c++让您这么用,斯特鲁普情何以堪。。
kkrmr
2011-08-19
打赏
举报
回复
有用。。
C/
C++
避免数组
越界
的方法
主要介绍了C/
C++
避免数组
越界
的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
c++
模拟退火算法解决图论
问题
模拟退火
c++
算法解决图论
问题
C++
语言基础视频教程
C++
语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践...学习者能够通过实践的方式,学会利用
C++
语言解决
问题
,具备进一步学习利用
C++
开发应用程序的基础。
C++
中new的
越界
访问
问题
越界
访问指访问了不是程序申请的内存区域,比如申请了5个字节的char数组,结果读写数据的第六个元素,或者访问了释放后的内存等等。
排列组合
问题
_
C++
_
这款代码,是关于排列组合
问题
,多用于计算机专业考研时
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章