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

C++빌더 Q&A
C++Builder Programming Q&A
[35413] Re:[질문] RichEdit->Lines->Text = char S[102400] 이 왜 에러가 나나요?
박지훈.임프 [cbuilder] 1310 읽음    2004-06-05 19:57
'RichEdit line insertion error' 에러는 여러 경우에 발생할 수 있습니다만, 님의 경우에는 아마도 마지막에
NULL 문자가 포함되지 않은 이유가 아닌가 싶습니다. 물론 코드에서 NULL문자를 포함시키긴 했습니다만,
만약 S에 채워진 문자열이 딱 102400 문자이고 마지막 널 문자가 102400 문자를 넘어선 위치에 있다면 에러가
나게 됩니다.

방금도 해봤는데, 다음과 같은 코드에서는 에러가 나지 않습니다.
    char S[102400];
    for(int i=0; i<102400; i++)
        S[i] = 'a';
    S[102399] = '\0';
    RichEdit1->Lines->Text = S;

그런데 다음과 같은 코드는 에러가 나지요.
    char S[102400];
    for(int i=0; i<102400; i++)
        S[i] = 'a';
    S[102400] = '\0';
    RichEdit1->Lines->Text = S;

두 코드의 차이는 딱 하나, NULL 문자의 위치가 배열의 한계 내에 있느냐 아니냐이지요.

그럼...


선진이 님이 쓰신 글 :
:
: 물론 제목과 같이 하지는 않았지요.
:
: char S[102400];
: S = 배열을 다 채울만한 용량의 문자열 + '\0';
: RichEdit->Lines->Text = S;
:
: 이렇게 했거든요.
:
: 근데 문제는 배열의 크기를 1024, 뭐 이렇게 작게하면 잘 되는데,
: 102400, 처럼 크게 잡으면 에러가 나네요.
: RichEdit line insertion error라면서...
:
: 어찌해야 하나요?
:
: 아시는분 도움 부탁드립니다.
:
:

+ -

관련 글 리스트
35401 [질문] RichEdit->Lines->Text = char S[102400] 이 왜 에러가 나나요? 선진이 835 2004/06/05
35413     Re:[질문] RichEdit->Lines->Text = char S[102400] 이 왜 에러가 나나요? 박지훈.임프 1310 2004/06/05
35453         감사합니다~~ 선진이 673 2004/06/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.