公司网站建设维保协议,国产服务器系统免费的有哪些,wordpress购买按钮插件,宜章网站建设使用new/delete操作符在堆中分配/释放内存 //使用new操作符在堆中分配内存int* p1 new int;*p1 2234;qDebug() 数字是#xff1a; *p1;//使用delete操作符在堆中释放内存delete p1;在分配内存的同时初始化
//在分配内存的时初始化int* p2 n…使用new/delete操作符在堆中分配/释放内存 //使用new操作符在堆中分配内存int* p1 new int;*p1 2234;qDebug() 数字是 *p1;//使用delete操作符在堆中释放内存delete p1;在分配内存的同时初始化
//在分配内存的时初始化int* p2 new int(100);qDebug() 数字是 *p2;delete p2;以数组方式new的也要以数组方式delete
//给数组分配内存int* p3 new int[4]{ 1,2,4,6 };//以数组方式new的也要以数组方式deleteqDebug() 数字是 p3[0] p3[1] p3[2] p3[3];delete[]p3;通过new操作符分配N维数组返回N-1维数组指针
//通过new操作符分配N维数组返回N-1维数组指针//二维数组 三行四列int(*p34)[4] new int[3][4]{{1,2,3,4},{5,6,7,8},{9,10,11,12}};for (int i 0; i 3; i){for (int n 0; n 4; n){qDebug() 数字是 p34[i][n];}}//释放多维数组delete[] p34;定位分配 new (指针) 类型 (初值);在一个已分配的内存空间中创建对象 //内存定位分配short buf[8];//在一个已分配的内存空间中创建对象int* p6 new (buf) int(0x12345678);qDebug() p6数字是 *p6;qDebug() buf数字是: buf[0] buf[1] ;-内存分配失败new操作符抛出bad_alloc异常 //内存分配失败new操作符抛出bad_alloc异常try{int* p5 new int[0xFFFFFFFFF];}catch (exception e){qDebug() 内存分配失败;}不能通过delete操作符释放已释放过的内存 //在分配内存的时初始化int* p2 new int(100);qDebug() 数字是 *p2;delete p2;//不能通过delete操作符释放已释放过的内存//delete p2;delete野指针后果未定义delete空指针安全
// 动态分配内存int* ptr new int(42);// 使用指针std::cout The value is: *ptr std::endl;// 删除指针delete ptr;//如果仍然指向已经被释放的内存此时ptr就是一个野指针ptr nullptr; // 将指针设置为nullptr避免成为野指针// 尝试再次删除指针现在是安全的因为ptr是nullptrdelete ptr; // 不会有任何副作用