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

C/C++ Q/A
[6415] Re:Re:포인터와 문자열 상수 에서 질문입니다.
이명훈 [bcpp45] 5681 읽음    2009-09-01 00:01
알파 님이 쓰신 글 :
: : literal_p가 "Hello C"라는 문자열 상수를 가리키고 있고 
: : 그것의 값을 변경할 수 없기 때문에,,
: : 실행중 오류가 나야한다고 하는데,
: :
: : 제가 할 때는 오류가 발생하지않고 잘 실행되었습니다..
: : ,이유가 무엇 때문인지 궁금합니다.
: :
:
: 원래 그게 정상입니다.
:
: const 추가해 보세요.
:
: 값 변경시 에러 메시지 뜨며 컴파일 중단될 겁니다.


알파님 답변 감사합니다.

그런데, 먼저 적은 소스를 Dev C++나 VisualStudio로 컴파일해서 만들어진 실행파일을 실행하면,

정말 실행 중 오류가 나서 프로그램을 닫거나 디버그하라는 말이 나옵니다.


실행중 에러가 나지 않으려면,

포인터가 문자열 상수를 지적하게 하지 말고,

배열에다 문자열을 넣고 사용하라는데, 위의 코드를

아래와 같이 배열로서 사용할 때는 Dev C++, VisualStudio에서도 실행중 에러가 발생하지 않았습니다.

#include    
#include    
  
int main(void)   
{   
    char arr[] = "Hello C";   
      
    arr[6] = 'J';   // 1번   
    puts(arr);   
  
   strcpy(arr, "Hello C");  //2번   
    puts(arr);   
  
   return 0;   
} 

+ -

관련 글 리스트
6397 포인터와 문자열 상수 에서 질문입니다. 이명훈 6298 2009/08/29
6427     Re:포인터와 문자열 상수 에서 질문입니다. 아~자~~! 24565 2009/09/03
6426     Re:포인터와 문자열 상수 에서 질문입니다. 남병철.레조 8935 2009/09/03
6444         Re:Re:포인터와 문자열 상수 에서 질문입니다. 남병철.레조 4903 2009/09/05
6451             안녕하세요. 이명훈 24748 2009/09/06
6415         Re:Re:포인터와 문자열 상수 에서 질문입니다. 이명훈 5681 2009/09/01
6420             Re:Re:Re:포인터와 문자열 상수 에서 질문입니다. 김진호.불사새 9802 2009/09/02
6416             Re:Re:Re:포인터와 문자열 상수 에서 질문입니다. Lyn 6715 2009/09/01
6425                 불사새님, Lyn님 답변 감사합니다. 이명훈 8954 2009/09/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.