社区
C++ 语言
帖子详情
删除对象指针为什么会出现段错误?
thinkperson_x201
2016-05-23 10:11:44
class B
{
int a;
int b;
public:
virtual ~B()
{
printf("B::~B()\n");
}
};
class D: public B
{
int c;
public:
virtual ~D()
{
printf("D::~D()\n");
}
};
int main()
{
B *pb = new D[2];
delete [] pb;
}
运行出现段错误:
段错误 (core dumped)
原因是什么?
...全文
319
3
打赏
收藏
删除对象指针为什么会出现段错误?
class B { int a; int b; public: virtual ~B() { printf("B::~B()\n"); } }; class D: public B { int c; public: virtual ~D() { printf("D::~D()\n"); } }; int main() { B *pb = new D[2]; delete [] pb; } 运行出现段错误: 段错误 (core dumped) 原因是什么?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
paschen
版主
2016-05-24
打赏
举报
回复
new D[2] 返回的类型是D*,中间你转换成B*是你的事,但在delete时你也要delete D*类型
int main() { B *pb = new D[2]; delete [] (D*)pb;
lm_whales
2016-05-24
打赏
举报
回复
因为分配的时候,并没有记录每个对象的类型 所以delete的时候,只能根据 指针的类型 delete 这样就不能准确找到每个对象了 如果是 单个对象。虚析构函数是可以准确析构的 数组是多个对象,因此除了第一个外,其他都不能准确析构
dustpg
2016-05-23
打赏
举报
回复
不要这么干,这是未定义行为,简单地说就是数组没有多态性。 虽然有点麻烦,但是也能好理解,规避也比较简单
腾讯2012笔试题目
题目要求
删除
一个
指针
所指向的
对象
,但提供了一个不完整的选项列表。在C++中,释放动态分配的内存需要使用`delete`操作符。 - **选项分析:** - A: `delete pA;` 正确地释放了指向`ClassA`类型的
对象
的内存。 - B...
【C++】迭代器为什么
会
失效?它的底层原理是什么?什么情况下erase最后一个元素
会
出现
段错误
?
erase
删除
pos位置元素后,pos位置之后的元素
会
往前搬移,没有导致底层空间的改变,理论上讲迭代器不应该
会
失效,但是:如果pos刚好是最后一个元素,删完之后pos刚好是end的...
删除
了最后一个元素又为什么
会
出现
段错误
?
什么是智能
指针
?智能
指针
有什么作用?分为哪几种?各自有什么样的特点?一个
指针
占用多少字节?
这样,智能
指针
能够自动管理内存,避免了手动管理内存时的繁琐和错误,使得编写代码更加简单、灵活和易于维护。同时,由于智能
指针
内部实现了引用计数等机制,能够自动检测
指针
的使用情况,如果
指针
被非法访问,则
会
...
C/C++面试:什么是智能
指针
?智能
指针
有什么作用?分为哪几种?各自有什么样的特点?
通过关键字inline,可以将函数声明为内嵌函数: ...如果函数的属性为always_inline,他就
会
被迫展开为内嵌函数 声明内嵌函数的结果可以使代码更大或者更小,这依赖于函数的尺寸、建立调用框架的复杂
什么是“NULL
指针
”,“悬空
指针
”和“野
指针
”?
当
删除
或释放
对象
时,如果不修改
指针
的值,就
会
出现
悬空
指针
,因此
指针
仍然指向释放后的内存的存储位置。以下是示例。 悬空
指针
C语言中的
指针
可以指向一块内存,如果这块内存稍后被操作系统回收(被释放),...
C++ 语言
65,192
社区成员
250,525
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章