2014-07-03 49 views
-2

好的,所以當我在同一個範圍內製作多個rects時,我訪問其中一個成員, 所有其他的rects(在同一範圍內)變得無法訪問。每個範圍不能製作多個Rect

如在我身上,

SDL_Rect* name; 
SDL_Rect* otherName; 
name->x = 7; 

現在嘗試,例如,otherName->h = 10將在該行崩潰

這是無關的rects在過聲明的順序 -

SDL_Rect* otherName; 
SDL_Rect* name; 
name->x = 7; 

訪問中文別名仍然崩潰。

+2

這是*所有*重要的代碼; IOW是否存在你希望向我們展示的SDL_Rect * otherName;和othername-> h = 10之間的任何內容? – ChiefTwoPencils

+0

@ChiefTwoPencils顯然沒有... –

回答

2

在我看來,你正在聲明指向SDL_Rects的指針,但是你沒有爲它們分配任何內存。 你應該這樣做:

SDL_Rect* otherName = new SDL_Rect(...); 
SDL_Rect* name = new SDL_Rect(...); 
name->x = 7; 
otherName->h = 10; 

或者只分配在堆棧上:

SDL_Rect otherName; 
SDL_Rect name; 
name.x = 7; 
otherName.h = 10;