|
'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라면서...
:
: 어찌해야 하나요?
:
: 아시는분 도움 부탁드립니다.
:
:
|