有沒有人知道寫出這個程序崩潰的代碼行的正確方法?
我發現,這是由試圖分配一個值NULL的存儲單元引起的,但我掙扎如何將其正確寫入:C++中的指針問題
#include <cstdlib>
int position[10];
struct ONE {
int* ptr;
};
int* f(int x) {
return position + x;
}
int main() {
ONE * main_ptr = NULL;
main_ptr->ptr = f(4); // <-- crash
return 0;
}
我會非常感激,如果有人能找到出了問題,並幫我
語言的名稱是C++不.cpp的(「CPP」往往指的是C預處理器)。當程序中止時,通常稱爲「崩潰」,而不是「粉碎」。短語「雙指針」可以指代'double *'類型。我建議使用「指向指針的指針」這個短語,但那不是你在這裏真正擁有的; 'main_ptr'是一個指向包含指針的結構的指針。 –
沒有「雙指針」之類的東西。有指針的指針。它是「崩潰」,而不是「粉碎」。 –