qq_45823672 2021-11-12 14:52 采纳率: 100%
浏览 12
已结题

分配的内存int[8]为什么后面的内存还能读写


#include <iostream>
#include <exception>

using namespace std;

class test{
public:
    int *p;
    test(){
        this->p = new int[8];
    }
    ~test(){
        if (p != nullptr)
            delete [] this->p;
    }
};


int main(){
    test c;
    cout<<sizeof(c.p)<<endl;
    try {
        for (int i = 0; i < 100; i++){
            c.p[i] = i + 100;
        }
        for (int i = 0; i < 100; i++){
            cout<<c.p[i]<<" ";
        }
        cout<<endl;
    }catch(const char* msg){
        cerr << msg << endl;
    }
}

img

  • 写回答

1条回答 默认 最新

  • 从善若水 5G/6G通信领域优质创作者 2021-11-12 14:54
    关注

    运气,因c/c++不是内存安全的语言,所以你可以这样
    rust就不可以了,会严格检测内存边界

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月22日
  • 已采纳回答 11月14日
  • 创建了问题 11月12日

悬赏问题

  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题