|
kongbw, 광양 님이 쓰신 글 :
: 아주 황당한, 허덥한 질문 같지만 그래도 답답한 마음에 혹시나 해서 이렇게 올립니다
:
: 너무 유치해서 충격을 받으셨다면 넓은 아량으로 봐주세요... (-_-) (_ _) (^_^)
:
:
:
: 다른게 아니라 요즘 C++ 기초 부터 다시 공부를 하고 있습니다
:
: 어제 오늘 계속 포인터를 공부 하고 있었지요
:
:
: 저희 학교에 있는 거의 모든 컴퓨터에는 비주얼 씨가 깔려있습니다
:
: 다른 것도 아닌 씨++ 기초를 공부하는데
: 그냥 비주얼 씨에서 해도 그렇게 별 문제가 없을 것 같아
: 비주얼 씨에서 계속 씨++ 공부를 했었습니다
:
:
: 그런데 이상하게 포인터로 문자열을 출력하는 부분에서 계속 막히더군요
:
: 복잡한 것도 아닙니다
:
:
: ===========================================================================================
:
:
: #include <iostream>
:
: using namespace std ;
:
: int main()
: {
: char * name = "Tigers" ;
:
: cout << name << endl ;
:
: return 0 ;
: }
:
: ===========================================================================================
:
:
: 이렇게 해서 실행을 시키면
: 화면에
:
: Tigers
:
: 가 찍히지 않습니까?
:
:
: 저는 문자열 처음에 있는 'T'자를 다른 알파벳으로 바꾸려고
:
:
: *name = 'G' ;
:
:
: 라는 문장을 넣었습니다
:
:
: 왠걸
:
:
:
: 빨간 동그라미에 횐색 엑스자가 찍혀 있는 창이 하나 뜨고
: 그 창에는 다음과 같은 메시지가 있더군요
:
: --------------------------------------------------------------------
: 응용 프로그램 오류
:
: "0x......."에 있는 명령이 "0x........."의 메모리를 참조했습니다
: 메모리는 "written" 될 수 없었습니다.
:
: 프로그램을 마치려면 [확인] 을 누르십시오
: 프로그램을 디버그하려면 [취소]를 누르십시오.
:
: [확인] [취소]
: --------------------------------------------------------------------
:
:
:
: 오늘 이것 때문에 하루죙일~~~ 매달렸습니다
:
:
: 아무리 봐도 틀린데가 없는데 왜 실행이 제대로 안되고
: 에러가 뜨는걸까???
:
:
:
: char * name = "Tigers" ;
:
: 라고 했지
:
:
: const char * name = "Tigers" ;
:
: 라고 한 것도 아닌데......
:
:
:
: 책을 계속 봤습니다 되풀이 해서 봤습니다...
: 안만 생각해봐도 틀린데가 없는 것 같았습니다
:
: 거짓말 안하고 오늘 이것 때문에 4~5시간 매달렸습니다
:
:
: 집에 와서...
:
: 혹시나 하는 마음에 책 살 때 딸려오는 Borland C++ 정품을 다시
: 윈도우에 깔고 거기서 비주얼 씨에서 입력했던 것 그대로
: 입력해서 다시 실행을 시키니까....
:
:
:
: 실행이 되는게 아닙니까???
:
:
: 황당하더군요
:
:
:
:
:
: [제가 묻고 싶은 것 하나]
:
: 이거 제가 뭘 잘못한 건가요???
: 아니면 비주얼 씨에 무슨 문제가 있는건가요???
: 그것도 아니면 저도 잘못하고 비주얼 씨에도 문제가 있었던 건가요???
:
:
:
: [제가 묻고 싶은 것 둘]
:
: 앞으로 씨++을 공부할 때
:
: 비주얼씨 , 볼랜드 씨, 터보씨 등등...
:
: 컴파일러 종류는 상관없이 그냥 집히는데로 아무거나 잡고 공부하는게 좋을까요??
:
: 아니면 볼랜드 계열에 속하는 컴파일러만 가지고 공부하는게 좋을까요???
:
:
:
:
:
: [제가 묻고 싶은 것 셋]
:
: 윈도우 2000 Pro. 에서 볼랜드 씨++ 3.1로 공부하는데
: 어떤 문제가 있을까요???
:
: 어떤 문제가 없으면 이제부터 그냥 볼랜드 씨++로
: 공부를 할까 생각 중인데....
:
: 혹시나 해서 말입니다
:
:
:
:
:
:
:
: 뜻이 제대로 전달이 되었는지 모르겠습니다
:
: 친절한 답변 부탁드리겠습니다
:
ANSI C++을 제대로 공부하시려면
ANSI C++ 표준을 정확히 지켜는 컴파일러를 쓰셔야 합니다.
M$ VC++은 ANSI C++ 표준을 제대로 준수하지 못하는 것으로 유명하죠.
MFC 자체가 그런 비표준 코드를 기반으로 하고 있습니다.
(6.0버전까지는요. VC++.NET에서는 많이 개선되었다고는 하네요.)
ANSI C++ 표준을 거의 100% 따르는 컴파일러는 공개소스(GPL) 컴파일러인 gcc(g++)이고요.
상용 컴파일러 중에서는 BC++(Builder)가 표준을 상당히 잘 준수하고 있습니다.
공짜 컴파일러를 쓰시려면 gcc나 BC++ 5.5 Compiler를 쓰시든가,
편리한 IDE를 필요로 하신다면 빌더를 쓰시는게 좋습니다.
BC++ 3.1은 불편한 도스 IDE인데다가 나온지가 워낙 오래되었기 때문에
(ANSI C++ 표준 훨씬 전이죠) 절대 쓰지 마시길 권합니다.
:
: 뒷말 : 왠지 허무하내요.... T_T
:
뭐가 그리 허무하신지요? -_-;;
|