yangxr1995 2016-12-02 15:02 采纳率: 0%
浏览 1003
已采纳

求大神帮助,delete报错

程序在delete那句中断
源代码:
#include< iostream >
#include< vector >
using std::vector;
#include< string >
using namespace std;

char* tran(string str)
{
char* t = new char[strlen(str.c_str()) + 1];
char* p = t;
strcpy_s(p,strlen(str.c_str())+1,str.c_str());
while (*p != 0)
{
if (*p >= 'a'&&*p <= 'z')
* (p++) -= 32;
else
++p;
}
p[strlen(str.c_str())] = 0;
return t;
}
void main()
{
vector< string > v;
string s;
char * t;
while (cin >> s&&*(s.c_str()) != '#')
v.push_back(s);
vector< string >::iterator iter = v.begin();
t = tran(*iter);
int len = strlen(t);

delete[] t;////////出错////////////////

system("pause");

}

  • 写回答

1条回答 默认 最新

  • czitroad 2016-12-02 15:18
    关注

    为何你会把 new出来的东西赋给一个char.....

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?