2014-09-07 2 views
0

정의되지 않은 상태에서 SDL_Surface의 기본값은 'NULL'입니까?SDL_Surface가 정의되지 않았습니까, 아니면 NULL입니까?

+0

이것은 모호합니다. 'SDL_Surface' 대신'SDL_Surface *'(포인터)를 사용하고 'undefined'대신 'uninitialized'를 의미합니까? 그렇다면'SDL_Surface * '는 어떤 타입에 대한 포인터 이외의 것이므로 초기화되지 않으면 그 값은 정의되지 않는다. – Nelfeal

+0

SDL_Surface *를 의미합니까? –

+0

사용중인 언어는 무엇입니까? C/C++, 맞죠? – HolyBlackCat

답변

0

다릅니다.

변수를 초기화하는 것이 좋습니다. 내가 본 바로는, 게으른 푸는 다음과 같은 주로 SDL_Surface를 사용

SDL_Surface* gCurrentSurface = NULL; 

그렇게 gCurrentSurface은 SDL_Surface 형식에 대한 포인터입니다. 초기화되지 않은 상태로두면 다른 결과가 나타납니다.

gCurrentState가 전역 변수 또는 정적 변수 인 경우 (정적 저장소가있는 경우) 자동으로 NULL로 초기화됩니다. 함수의 지역 변수 인 경우 스택의 임의의 값이 포함됩니다.

+0

C에서 2D 배열과 같은 복잡한 구조체를 제외하고 힙에 포인터를 만드는 위치가 궁금합니다. – Nelfeal

+0

글쎄, 내 대답이 명확하지 않았습니다. malloc으로 힙에 포인터를 만드는 것은 이상하게 들리고 막연합니다. Malloc/new는 힙 주소를 반환합니다. – macfij

+0

고맙습니다! 나는 지금 나는 이해한다고 생각한다. 변수와 포인터를 초기화하는 데 차이가 있다는 것을 알지 못했습니다. –

관련 문제