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 一个文字常量区 -。- 所以~~~~~~~~~