例如下面这个程序,运行到delete之后就断点了,后面那个cout的输出运行不了。这个delete应该没有问题呀,还是本人原先分配的那个地址啊
[code=c
]#include<iostream>
#include<string>
using namespace std;
int main()
{
char *a = new char[5];;
char b[5] = “abce”;
strcpy_s(a, 10, b);
delete a;
cout << “1”;
return 0;
}[/code]
[code=c
]#include<iostream>
#include<string>
using namespace std;
int main()
{
char *a = new char[5];;
char b[5] = “abce”;
strcpy_s(a, 10, b);
delete a;
cout << “1”;
return 0;
}[/code]
解决方案
40
strcpy_s(a, 10, b);
==============
你只是申请了5个长度,用了10个越界了。
==============
你只是申请了5个长度,用了10个越界了。