2014-11-17 5 views
0

메서드의 반환 값을 int 배열로 복사하려고합니다. (getPixelArray 메서드는 크기가 3 인 int 배열을 반환합니다.) 아래 코드는 잘못된 부분입니다. 이 코드를 컴파일 할 때, 나는에 갈 수있는 어떤 오류반환 값을 int 배열에 할당

invalid lvalue in unary '&'

를 얻을? 나는 this 대답에서 충고를 따르고 있었다.

int temp[3]; 
memcpy(&temp, &(getPixelColor(width, height, x, y)), sizeof(temp)); 

편집 : 여기 있습니다.

int[3] getPixelColor(int width, int height, float x, float y) { 
    int color[3] = {0, 0, 0}; // color of pixel 

    // get color (omitted) 

    return color; 
} 
+1

'(getPixelColor (width, height, x, y))'는 좌변이 아닙니다. –

+0

'getPixelColor()'또는 적어도 함수 프로토 타입의 코드를 게시하십시오. – SSC

+0

죄송합니다. 나는 함수의 골격을 게시했다. – user41419

답변

0

기호 tmp은 int 포인터처럼 동작합니다.

그리고 당신도, 함수에서 불과 포인터 배열을 반환 할 수 없습니다

int *getPixelCOlor(... 

memcpy(temp, getPixelColor(width, height, x, y), sizeof temp); 

getPixelColor는 스택 프레임에서 일반적으로 지역의 자동 스토리지의 주소를 반환, 그리고 이후에 파괴됩니다 함수 호출. 자신의 memcpy처럼. 여기는 용 이예요.