2013-05-28 4 views
-1

이미 여러 스레드에서 올바른 답을 찾았지만, 내가 가지고있는 정확한 문제를 찾을 수 없었습니다 : 내 프로그램에서, 루프 내에서 특정 날짜를 채우기 위해 배열을 만들었습니다. 문제는 과제입니다. 코드를 어떻게 기술해야할지 모르겠으므로 (C로 프로그래밍하는 데 전혀 경험이 없습니다) 약간의 코드를 게시합니다 :배열 초기화 중 - 경고 : 할당은 캐스팅없이 포인터에서 정수를 만듭니다.

int * array [] = malloc (w * h * sizeof (int));

array [i] = (SDL_MapRGB (fmt, red, green, blue));

그래서 첫 번째 줄은 내 배열을 만들고 두 번째 줄에서는이 배열의 i 번째 위치에 정수 인 "SDL_MapRGB"함수의 결과를 실제로 쓰고 싶었습니다. (루프의 일부로, 루프가 끝나면 전체 배열을 채울 수 있습니다.)

그리고 이것은 내가 얻는 오류입니다. 오류 : 지정하지 않고 정수에서 포인터를 만듭니다. 캐스팅 [-Werror]

아무도 내가 그것을 고칠 수있는 방법을 알고 있습니까? 나는 아직도 (오래된 글을 읽은 후에) 그것이 의미하는 것을 이해하지 못한다. 나는 어떤 도움이라도 매우 감사 할 것이다 :

답변

0

당신의 선언이 틀렸기 때문에. int *array[]은 포인터 배열입니다. 1 차원 배열을 사용하므로 int *array, i 만 입력하면됩니다. 이자형. 괄호를 버리십시오.

0

array[i]은 포인터입니다. SDL_MapRGB()은 경고의 원인이되는 정수를 반환합니다.

변경 배열의 선언 :

int *array = malloc (w*h*sizeof(int)); 
관련 문제