-2
我有使用指针交换字符串中所有字符的程序。我尝试删除指针并释放内存时发生问题。即使在创建它们之后尝试删除指针,我也会得到一个无效的指针错误。这是计算机科学课程活动,必须这样做,它不是一个年级,我只是想从我犯的任何错误中学习。作业:使用指针交换字符的C++反向字符串
#include <iostream>
using namespace std;
int main() {
string s;
cin >> s;
char a = 'a';
char b = 'b';
char *c1 = &a, *c2 = &b;
int len = s.length();
for (int i = 0; i < len; i++) {
char temp;
*c1 = s[i];
*c2 = s[(len - i) -1];
cout << "c1 " << *c1 << endl << "c2 " << *c2 << endl;
temp = *c1;
*c1 = *c2;
*c2 = temp;
if (i == len - 1) {
cout << "Should be deallocating memory" << endl;
delete c1, c2;
cout << "Set to null" << endl;
c1 = NULL;
c2 = NULL;
}
}
cout << "s " << s << endl;
return 0;
}
'std :: reverse(s.begin(),s.end());'为什么地球上你想要删除自动变量? – user657267 2014-10-30 02:44:03
这是一个班级活动的要求。这不是一个等级,我甚至不需要这样做,我只是想知道为什么它不起作用。 – kylealanr 2014-10-30 03:11:46