2014-05-21 3 views
-1

나는 다음과 같은 코드가 있습니다이 배열을 한 줄로 어떻게 초기화합니까?

int dis[m]; 
for (int i = 0; i < m; ++i) 
    dis[i] = i; 

이 반복자 또는 부스트를 사용하는 것과 같이, 한 줄에 초기화를 할 수있는 방법이 있나요를? m 매크로와 같은 빌드시에 측정 하였다 경우

+4

아니요. –

+2

boost와 iterator는 C++가 아니라 C를위한 것이다. 또한'm'이 무엇인지에 달려있다. –

+4

한 줄에? 완료 :'int dis [m]; for (int i = 0; i Mysticial

답변

2

호는이 C에서 작동 할 수있는 유일한 방법은, 당신은 단지 같은 것을 할 수있다 : 당신은 다음과 같은 것을 사용할 수

#define M    (5) 
#define DIS_INITIALIZER {1,2,3,4,5} 
int dis[M] = DIS_INITIALIZER; 
+0

"유일한 방법"이 아닙니다. 당신을위한 기능을 작성할 수도 있습니다. – Rapptz

+0

그렇다면 "한 줄짜리 초기화"자격이 될지 확실하지 않습니다. – Havenard

+0

멤버를 반복하거나'memset'을 호출하지 않으려는 경우를 제외하고, 앞에서 설명한 것과 같이 정적 초기화 프로그램이 한 줄 초기화를 수행하는 유일한 방법입니다. – DevNull

2

을하지만, for 루프는 사용할 수 없습니다.

int dis[] = {0,1,2,3,4,5,6,7,8,9}; 

유일한 방법은 1 줄로 초기화하는 것입니다.

관련 문제