-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