我被給出以下解釋的問題: 「僅使用變量q,爲結構點內的整型指針動態分配內存」。我寫了下面的代碼,但是,我無法刪除動態分配的整數,因爲它給我一個運行時錯誤,說我正在刪除一些不存在的東西。我在分配後檢查了內存地址 ((* q) - > x - > x)和srcX,並且它們具有相同的地址。我怎樣才能釋放這個動態分配的整數?在另一個結構中釋放指針內的指針
#include <iostream>
using namespace std;
struct point {
int *x;
int *y;
};
struct line {
struct point *x;
struct point *y;
};
void create_line (int srcX, int srcY, int dstX, int dstY) {
struct line *p;
struct line **q = &p;
(*q) = new line;
(*q) -> x = new point;
(*q) -> x -> x = new int;
(*q) -> x -> x = &srcX;
cout << *((*q)->x->x) << endl;
delete (*q)->x->x; // Causing run-time error
delete (*q)->x;
delete (*q);
}
int main(){
create_line(2,3,7,8);
return 0;
}