Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[161] Re:무식한 질문이지만... 그래도 알고자 하는 맘에... 배열 선언 할 때 말이죠...
김진수 [miman101] 4616 읽음    2001-12-22 09:51
저두 c++ 공부하고 있는데
위와 같은 경우는 int leejin[ 2 ]; 라고 선언 하시면 컴파일러가 컴파일 할때
integer 값을 가지는 변수 leejin 의 필요한 메모리 할당을 해줍니다.

하지만 int leejin[ x ]; 라고 선언을 하시면 컴파일러는 메모리 할당에 실패를 해서
에러를 내보내는게 아닌가 싶습니다. 도대체 얼마를 할당해야 하는지 모르는 거죠.

이런 경우 c++  STL 의 벡터를 이용하시면 어떨까요. vector는 표준 <vector.h> 헤더 파일에
정의 되어 있는 클래스 템플릿입니다.
필요에 따라 자동적으로 커지거나 작아지는 컨테이너 객체라고 하는 군요..

이런 C 로 물어 보신거라면 답변이 안되겟네여


kongbw 님이 쓰신 글 :
: 다른게 아니구요
:
: 일단 풀어야 할 문제가 있어서 그걸 풀긴 풀었는데
: 궁금한게 있어서 그럽니다
:
:
: 문제는
:
:
: 10진수를 입력하면 2진수를 출력하는 프로그램을 작성하시오

:  숫자를 입력하시오 >> 12
:    2진수 : 1100
:
:
: 이거든요
:
: 배열에 2로 나눈 수 나머지를 차례로 넣고
: 거꾸로 출력을 시키는 겁니다
:
:
:
:
: #include <stdio.h>
:
: void main()
: {
: int N ;            // 입력할 10진 수
: int k;            // 입력할 수가 몇 번 나눠지는가 알기위한 수
: int i = 0 ;        // 10진수가 2진수로 몇자리 나오는지 저장되는 변수
: int j ;            // j는 2진수 출력에 쓰이는 반복문 초기값
:
:
:     printf("10진수를 입력하세요 : ") ;
:     scanf("%d", &N) ;
:
:
: k = N ;            // N을 직접 쓰지 못하므로 따로 k에 N을 대입 ;
:
:         while ( k != 0 )        // 입력한 10진수가 2진수로
:         {                        // 몇자리가 나오는지 계산
:         k = k / 2 ;
:         i = i + 1 ;
:         }
:
:
: int leejin[100] ;        // 2진수를 입력할 배열 선언
:                         // 이걸 쓸려고 한게 아니라
:                         // 바로 밑에껄 쓸려고 했습니다
:
:
: /*     ********************************************************
:  int leejin[i] ;    --------->>>> 바로 문제를 일으키는 부분...
: */     ********************************************************
:
:
:
:
:
: k = N ;                // 다시 k에 초기에 입력한 10진수를 대입하여 씀
:
:
:         for ( j = 0 ; j < i ; j++ )
:         {
:         leejin[j] = k % 2 ; // 배열에 2진수를 구해서 입력함, 순서는 거꾸로임.
:
:         k = k / 2 ;
:         }
:
:
:
:     printf("\n이진수 : ") ;
:
:
:         for (j = i-1 ; j >= 0  ; j-- )
:         {
:         printf("%d", leejin[j]) ;
:         }
:
:     printf("\n\n\n\n") ;
:
:
: }
:
:
:
:
: 코딩도 개판이고... 주석도 개판인데... 초보려니 하고 이해해 주세요
:
:
: 일단 풀긴 풀었거든요
:
:
: 그런데 원래 위에 별표를 친걸로 배열 선언을 할려고 했습니다
:
: 2진수 자리에 꼭 알맞게 하기 위해
:
:
: 배열 선언에 변수를 넣었거든요
:
: for 문을 쓸 때도 배열문 안에 변수를 넣어서 썼던게 생각이 나서
:
: 배열을 선언할 때도 충분히 쓸 수 있을 거라고 그렇게 했는데
:
: 왠걸?
:
: 컴파일 하는데 자랑스럽게도 애러가 뜨더군요
:
: 제가 생각하기에... 충~~분히 될 것 같았는데...  쩝...
:
: 그래서 할 수 없이 100개 짜리 배열을 선언해서
:
: 자리를 충분히 만들 수 밖에 없었습니다
:
:
:
: 원래 배열을 선언할 때 변수를 쓸 수 없는건가요?
:
: 제가 보기에는 써도 될 것 같은데...
:
:
: 거기에 대해 좀 자세한... 이런 저런 이야기 좀 부탁 드리겠습니다
:
: 원래 배열 선언문 안에 변수를 쓸 수 없는지
:
:
: 어떠한 큰... 치명적인 문제 때문에 그렇게 만든건지...
:
: 이런 저런 자세한 설명 부탁드립니다
:
: 제 머리로는 도저히 이해가  T_T
:
:
:
: 흐... 여기 질문란에 처음 올리는 글이내요
:
: 아무튼 여러 고수님들께서 백옥, 주옥 같은 지도 부탁드립니다!!!
:
:
:
:
:
: 뒷말 : 고수님께서 무심코 던진 실마리 하나가
:        방황하는 왕하수한테는 굵은 동앗줄이 될 수 있습니다    T_T

+ -

관련 글 리스트
159 무식한 질문이지만... 그래도 알고자 하는 맘에... 배열 선언 할 때 말이죠... kongbw 4517 2001/12/22
161     Re:무식한 질문이지만... 그래도 알고자 하는 맘에... 배열 선언 할 때 말이죠... 김진수 4616 2001/12/22
166         답변 감사합니다 ^_^ kongbw 5678 2001/12/22
164         Re:Re:무식한 질문이지만... 그래도 알고자 하는 맘에... 배열 선언 할 때 말이죠... 태즈 4580 2001/12/22
167             답변 감사합니다 그런 방법이 있었군요 kongbw 3432 2001/12/22
179                 Re:답변 감사합니다 그런 방법이 있었군요 이경문 3581 2001/12/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.