c++ delete-C++ delete时出现了断点 我要怎么改

问题描述

C++ delete时出现了断点 我要怎么改

#include
#include
using namespace std;

void main()
{
char *str1 = new char;
char *str2 = new char;

int num1, num2;
int num;
cout << "**********比较两个字符串大小************" << endl;
cout << "输入两个字符串" << endl;
cin.getline(str1,50);
cin.getline(str2,50);
num1 = strlen(str1);
num2 = strlen(str2);
cout << "输入你要比较的字符个数:";
cin >> num;
int n=strncmp(str1, str2, num);

if (n > 0)
    cout << str1 << "字符串大于" << str2;
else if (n=0)
    cout << str1 << "字符串等于" << str2;
else
    cout << str1 << "字符串小于" << str2;
    delete str1;
    str1 = NULL;
delete str2;
str2 = NULL;

}

解决方案

你说断点? 什么意思? 是程序运行到哪里就暂停了?

解决方案二:

str1、str2分配空间不够,应该new一个数组。

解决方案三:

你的str1 和 str2 指向了一个字符串常量。 文字常量 是程序结束后,由系统自己回收的。而你在 delete str1 的时候 其实 你在尝试 delete 一个文字常量区 -。- 所以~~~~~~~~~

时间: 2024-12-08 14:53:21

c++ delete-C++ delete时出现了断点 我要怎么改的相关文章

C++中delete和delete[]的区别_C 语言

一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论.做个备份,以免丢失.     C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[].  关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间:(2) 为自定义类型分配和回收空间. 请看下面的程序. #include <iostream>; using na

C++中delete和delete[]的区别说明_C 语言

    C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[].  关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间:(2) 为自定义类型分配和回收空间. 请看下面的程序. 复制代码 代码如下: #include <iostream>;using namespace std; class T {public:  T() { cout <<

关于delete和delete[]

[精彩] 求问delete和delete[] 的区别??http://www.chinaunix.net/jh/23/311058.html C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[].  楼主的这个问题提得很好.很多人注意到了这个问题,但是却不清楚为什么要这样做,不这样做行不行.  关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间:(2) 

C++中delete和delete[]的区别详细介绍_C 语言

一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论.做个备份,以免丢失. C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]. 关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间:(2) 为自定义类型分配和回收空间. 请看下面的程序. 复制代码 代码如下: #include <iostream>; us

C++中delete 和delete[]的区别

c++告诉我们在回收new分配的单个对象的内存空间的时候用delete,   回收new[ ]分配的一组对象的内存空间的时候用 delete[ ]; 1 #include <iostream> 2 using namespace std; 3 4 class Father 5 { 6 public: 7 virtual ~Father() 8 { 9 cout << "Father's Desconstruct Called. " << endl;

《从缺陷中学习C/C++》——6.10 delete与delete[]的区别

6.10 delete与delete[]的区别 从缺陷中学习C/C++代码示例 char *buff = new char[reslen]; delete buff; 现象&结果申请的数组空间没有全部释放,造成内存泄露.用cppcheck工具执行静态代码扫描可以看到如下信息:(error) Mismatching allocation and deallocation: buf. Bug分析对于数组类型,如 string str = new string[10],用delete str和dele

delete释放空间时出错的原因

int *a=new int[10]; ...... delete []a; ---------------------------------------------------------- 当后面delete []a;出现错误的情况大致有: 1.数组的首地址a被你有意无意更改了,如:a++之类的: 2.变量的作用域问题,如:你是在一个函数体中new的,却在另一个函数体中delete,这时的a变量已经失效了,这时delete会出现a为不认识的标识符的错误: 3.先前已经delete过一次了,

易语言破解软件时的按钮断点事件处理方法_易语言

按钮事件断点时 断在时钟的处理方法,新人看看比较好,按钮事件断点断在时钟是很常见的事情.(主要针对易语言程序来讲解) 1.首先载入程序 2.按ALT+M,搜索FF 55 FC 5F 5E 89 5D F4(这个是易语言按钮事件特征码) 3.会弹出这个 4.然后按这个搜索418E5D 5. 在这下段,3秒内会断在时钟,然后在堆栈窗口向上翻,出现"时钟",在时钟后面第二个那里按"反汇编窗口中跟随", 6.反汇编窗口就会来到这里,然后把开头第一行给retn了,如图所示 7

bitMap格式保存时背景色如何由原先的灰色改为白色

问题描述 对于此问题有人提出如下解决方式创建一个具有btimap宽高的临时图片tempBitmap,Graphicsg=Graphics.FromImage(tempBitmap);g.Clear(System.Drawing.Color.White);g.DrawImage(bitmap,0,0);tempBitmap.Save(filename,System.Drawing.Imaging.ImageFormat.Jpeg);可是我使用的bitmap图片中有文字而这样保存的图片中文字笔画间的