저두 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
|