배열에서는 않되고 구조체에서는 되는것?

배열에서는 않되고 구조체에서는 되는것?

작성일 2005.11.16댓글 1건
    게시물 수정 , 삭제는 로그인 필요

int ba[상수];

 

이런식으로 배열은 선언하지 않습니까?

 

그리고 구조체는

 

typedef struct {

          int i;

          char a;

}gg;

 

// 이런식으로 하고나서

 

void main()

{

     int n;

     printf("구조체 몇개나 만들까요?\n");

     scanf("%d",&n);

     gg good[n];

}

 

이런 문장이 구조체에서는 되더라고여?

 

구조체 배열을 만드는데 printf 문장 다음에 선언문이 들어가는 것도 모자라

 

그 구조체 선언문에서 배열의 크기를 변수로 넣었는데도 재대로 돌아가네여?

 

배열은 선언할때 안에 상수 밖에 못들어 가는거 아닌가여?

 

그리고 선언문은 문장 전에 나와야 하고여?

 

근데 왜 구조체는 문장 다음에 선언할수 있고

 

배열 크기에 변수가 들어갈 수 있는 거죠?

 

누구 아시는분 제 머리속의 개념좀 확실히 잡아주세요 ~~~



profile_image 익명 작성일 -

배열의 크기는 반드시 상수로 줘야 합니다.

위의 코드처럼 변수를 줄 수 없습니다.

올리신 저 코드는 컴파일시에 오류가 발생합니다.

 

구조체에서는 컴파일이 되셨다고 하셨는데요,

어떻게 코드를 만드셨나요?

아마도 매크로를 쓰셨거나

아니면 동적 할당을 하신 경우일겁니다.

 

그리고 C언어에서는 구조체 배열을 만드는 것도 일반 명령문 뒤쪽에 올 수 없습니다.

아마도 이 질문도 동적 할당 코드를 보신 것 같네요.

배열에서는 않되고 구조체에서는 되는것?

... 구조체 배열을 만드는데 printf 문장 다음에 선언문이 들어가는 것도 모자라 그... 명령문 뒤쪽에 올 수 없습니다. 아마도 이 질문도 동적 할당 코드를 보신 같네요.

char -> 구조체 복사 입니다.

... 이런식인데 구조체배열크기에 맞게 들어가는게... 존재하게 되고, 이 값을 출력하면 -258358392 어쩌고 하는 이상한 값이 출력되게 되는 것입니다....