2013-04-23 3 views
-1

학습이 쉬워 짐에 따라 RGBQUAD를 매개 변수로 전달하여 구조체 멤버를 검게하는 메서드에 전달하려고합니다. 'black_quad'가 호출되면 프로그램이 중단됩니다. 내가 어디로 잘못 가고 있니?RGBQUAD를 매개 변수로 전달하는 방법은 무엇입니까?

void UpdateFields() 
{ 
    RGBQUAD quad; 
    black_quad(&quad); 
    /* snip */ 
} 

void black_quad(RGBQUAD* quad) 
{ 
    quad->rgbBlue = 0; 
    quad->rgbGreen = 0; 
    quad->rgbRed = 0; 
} 
+2

당신이 알고 있고 우리는 볼 수없는 것을 묘사하십시오. 충돌이 어떻게 생겼지? –

+0

"* 나는 어디로 가고있는거야? *"아무데도 코드를 제시했다. 컨텍스트를 제공 할 수 있습니까? –

+0

정확히 쓰여졌 듯이 충돌이 없어야합니다. 자, 정확히 그걸 썼습니까, 아니면 그것을 단순화 했습니까? 예를 들어'quad '가 실제로 포인터에 의해'UpdateFields'에 전달 될 수 있으며, 런타임에 포인터가 어떤 식 으로든'NULL'이거나 유효하지 않습니다. –

답변

2

어려운 말 : 당신의 문제는 다른 곳에 있습니다. 다음 코드는 테스트를 거쳐 win7 gcc 4.7을 사용하고 있습니다. ??

#include <windows.h> 

void black_quad(RGBQUAD* quad) 
{ 
    quad->rgbBlue = 0; 
    quad->rgbGreen = 0; 
    quad->rgbRed = 0; 
} 
void UpdateFields() 
{ 
    RGBQUAD quad; 
    black_quad(&quad); 
} 

int main() 
{ 
    UpdateFields(); 
} 
관련 문제