我寫了一個小例子來測試我對指針和內存的理解,但是我確信這會起作用,但是它給了seg錯誤......任何想法我做錯了什麼? 添加:我用其他代碼運行此代碼。爲什麼此代碼給出分段錯誤?
#include <iostream>
using namespace std;
struct Card {
int a;
Card(int a) : a(a) { }
};
int main() {
int **p;
int **p2;
int *a;
int b =3;
char ** cArray;
Card **c = new Card*[5];
for (int i = 0; i<5; i++)
c[i] = new Card(1);
a = &b;
for (int i = 0; i< 10; i++) {
p = &a;
// p2[i] = new int;
*(cArray + i) = "string";
cout << cArray[i]<< endl;
}
for (int i = 0; i< 10; i++) {
// p2[i] = a;
cout << *a << endl;
}
}
它適用於我 - 你使用的是什麼編譯器和操作系統?你能發佈實際的seg故障信息嗎? –
@標記 - 除內存泄漏之外,代碼沒有任何問題。 – Mahesh
這對我來說不是segfault(在g ++/Linux上)。 – wallyk