读取位置时发生访问冲突
编写一个函数,判断输入的一串字符是否为“回文”。#include "stdafx.h"
#include<string>
#include<iostream>
using namespace std;
bool judge(char *p)
{
int start=0;
int end=0;
int i=0;
start=i;
while(p[i]!='/0')
i++;
end=i-1;
while(start<end)
{
if(p[start]!=p[end])
return false;
start++;
end--;
}
return true;
}
int _tmain(int argc, _TCHAR* argv[])
{
char *p=new char[20];
cin.getline(p,20);
if(judge(p)==true)
cout<<"yes";
else
cout<<"no";
delete p;
system("pause");
return 0;
}
结果运行出错
0x00AA48CF 处的第一机会异常(在 ConsoleApplication2.exe 中): 0xC0000005: 读取位置 0x0029B000 时发生访问冲突。
调试后,在 char *p=new char[20];
就显示+ p 0xcccccccc <读取字符串的字符时出错。> char *
希望大神帮忙解决