C++ delete报错解析

C++ delete报错

今天写了如下代码

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    int n, s, a, b;
    int ans = 0;
    cin >> n >> s;
    cin >> a >> b;
    int* p = new int[n];
    int temp;
    int length = 0;
    for (int i = 0; i < n; i++) {
        cin >> temp;      // now temp is the height
        if (temp <= a + b) {
            cin >> *p;    // input the strength cost
            p++;
            length++;
        }
        else cin >> temp; // trash data dealing
    }
    sort(p, p+length-1);
    p -= length;
    while (s > 0) {
        ans++;
        s -= *p;
        p++;
    }
    delete [] p;
    cout << ans;
}

编译没有报错,但是运行的时候报错了。原因是delete语句。

出错现象:

执行delete语句时,程序卡死。将delete注释掉,程序运行正常,但是发生了内存泄漏。

原因:

p作为指向堆内存的指针,指向的是数组的首地址。而我更改了p的地址,如代码中的p++。

解决方案:

能加const就const,数组首地址是常量,不可以修改。

原文地址:https://www.cnblogs.com/scyq/p/12321444.html

时间: 2024-11-09 14:55:42

C++ delete报错解析的相关文章

使用insert、update和delete报错注入

使用insert注入 1.原理 一般我们写SQL注入的过滤器的话,重点关注的关键词就是select了,因为这个关键字可以从数据库中查询信息.所以一旦这个函数杯过滤,并且无法通过其他方法进行绕过的话,注入工作可能会变得比较困难. 如果在有用户注册的页面的话,后台SQL语句会有类似insert出现,例如 insert into user(id,name,pass) values (1,"tony","123456"); 这里是可以进行报错注入的.主要就是用到了两个Mys

安装PIL报错解析

开始安装PIL PIL只支持到python2.7,我安装的是python3.6版本,所以  不支持,报错 需要下载支持自己版本的包,下载地址https://www.lfd.uci.edu/~gohlke/pythonlibs/#pillow 选择支持自己电脑系统版本64和python3.6版本的pillow, 下载完成后,将下载的文件拖动到D盘 打开cmd ,进入D盘  pip install Pillow-6.0.0-cp36-cp36m-win_amd64.whl 下载完成后,校验是否成功

wcf返回值报错解析

问题来源 最近在项目中使用wcf,因为是一个新手,对新的东西总是比较敬畏,不过一切都是进行得很顺利,运行的时候,突然报了错,编译器提示的错误大概是:“InvalidOperationException:无法加载操作“UploadResourceNotInDb”,它具有类型为 System.ServiceModel.Channels.Message 的参数或返回类型,或具有一个带有 MessageContractAttribute 及其他不同类型参数的类型.”! 服务契约(Service Cont

Python读取xml报错解析--ExpatError: not well-formed (invalid token)

xml文件内容如代码所示存入的名字为login.xml: <?xml version="1.0" encoding="utf-8"?> <info> <explain>126</explain> <url>http://www.126.com</url> <null username="" password="">请先输入您的邮箱帐号</

网站各种报错解析not found,404,forbiden,403

2. 打不开页面 只要页面上有返回错误代码,解析都已经生效,需要做的就是检查服务器配置. 以下是常见的错误代码页面: 凡是出现以上页面,都与解析无关,请检查服务器配置.

idea连接spark集群报错解析:Caused by: java.lang.ClassCastException

cannot assign instance of scala.collection.immutable.List$SerializationProxy to field org.apache.spark.sql.execution.aggregate.SortAggregateExec.aggregateExpressions of type scala.collection.Seq in instance of org.apache.spark.sql.execution.aggregate

maven打包报错问题解析

1. 场景描述 Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:3.1.0:clean (default-clean) on project sptest: Failed to clean project: Failed to delete 2. 解决方案 2.1 问题定位 错误发生在idea下时候clean命令,很明显问题发生在clean的时候target这个文件夹下的文件删除不了. (1)难道无意中打开了配

关于Uncaught SyntaxError: Unexpected token o in JSON at position 1,chrome持续报错的相关解析

今天跟大家分享我前两天遇见的一个BUG,说出来很难受,因为这个BUG花了我一个多小时去找原因,后来莫名其妙的故障消失了,强迫症犯了的我,居然花了2个多小时去故意再制造这个BUG,只想弄明白WHY???结果大家应该都猜到了,哈哈,没找到!!!没错,居然没找到!!!不过类似于Uncaught SyntaxError: Unexpected token ' in JSON at position 2的错误... 关于JOSN的方法,大家通过百度应该都深刻理解它的用法:parse用于从一个字符串中解析出

jsonkit 解析nsarray 时候 报错

jsonkit 解析nsarray 时候 报错 Assertion failure in -[TXJKArray count], /Users/mqq/hudson/1740/src/TencentOpenApi_IOS/Common/Util/JSONKit.m:738 解决办法: Had the same issue, I was trying to set the output straight to a dictionary I had created. myDictionary = [