问题描述
- 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