str: string; bt: array[0..3] of byte; 여기서 예를 들어 str := 'abc'; 라 하면 끝에 null이 포함된 내용이겠죠? 여기서 bt[0] 에 a를 bt[1] 에 b를 bt[2] 에 c를 bt[3] 에 null을 넣으려고 하는데...잘 안되네요.. 자꾸 C언어적 사고가...
최용일
•
2001.02.24 01:46
안녕하세요. 최용일입니다.
string타입은 씨에서 사용하는 PChar형과는 다르죠... PChar형이야 널종료문...
string타입은 씨에서 사용하는 PChar형과는 다르죠... PChar형이야 널종료문자열인거은
알테구... string타입은 인덱스 1부터시작합니다. 끝에 널문자열이 아니라 인덱스 0번
(4바이트)에 그 크기를 저장합니다. -1번 인덱스(4바이트)에는 레퍼런스카운트가 들어
가 있구요. 그래서 메모리 할당해제를 델파이가 자동으로 알아서 해줍니다....
Str := 'abd';
bt[0] := Str[1];
bt[1] := Str[2];
bt[2] := Str[3];
bt[3] := #0;
아래와 같이 하면 더 편리하죠...
FillChar(bt, 4, 0);
Move(Str[1], bt[0], Length(str));
^^ 항상 즐코하세요...
초보 wrote:
> str: string;
> bt: array[0..3] of byte;
>
> 여기서 예를 들어
> str := 'abc'; 라 하면 끝에 null이 포함된 내용이겠죠?
>
> 여기서
> bt[0] 에 a를
> bt[1] 에 b를
> bt[2] 에 c를
> bt[3] 에 null을 넣으려고 하는데...잘 안되네요..
> 자꾸 C언어적 사고가 생겨서리...
> 어떻게 해야하나요?
>