말씀해 주신 부분중에 Byte**형태로 처리하라는 부분에서 이해가 잘 안됩니다.
아래와 같이 type에서 선언으로 하고 사용하면 문제가 있는지요?
new를 이용하고 싶은데 아직 책을 보고 있는 중이라 적용을 못해 봤습니다.
좀더 공부해야 할 것 같습니다.
선언부
void __fastcall Test(Byte* bArray, int count = 10);
구현부
void __fastcall TData::Test(Byte* bArray, int count)
{
bArray = new Byte[count];
for (int i=0; i<count; i++) {
bArray[i] = 0;
}
}
파스칼로
선언부
PArrayByte = Array of Byte;
procedure TData.Test(bArray : PArrayByte ; count : Integer = 10);
구현부
procedure TData.Test(bArray : PArrayByte ; count : Integer);
var
i : Integer;
begin
SetLength(bArray, count);
for I:=0 to count do begin
bArray[i] := 0;
end;
end;
허정주 님이 쓰신 글 :
: 파스칼 코드로 기본 인자값은
: procedure Test(A: Integer = 10);
: 이렇게 해보니 되네요.
:
: 그런데 C++ 코드를 보니...
: 함수 내부에서 동적 생성해 주려면 Byte** 형태로 받아서 하셔야 할겁니다.
:
:
:
: leo21c 님이 쓰신 글 :
: : 사실 void*를 이용해서 타입에 따라 byte 데이터를 만들어 사용하려고 하는데
: : 어떻게 하는지 몰라서 우선 이렇게 테스트 하고 있습니다.
: : byte 동적배열을 만들어서 처리하려고 합니다.
: :
: : 인자(파라메터)로 아래와 같이 만들어서 사용하는데 무리가 없는지 모르겠습니다.
: : 현재 C++ builder에서 작업을 하고 있습니다.
: : 예전 소스가 파스칼이라 기존 작업을 예전 소스에 적용하고 있습니다.
: :
: : 파스칼 문법 c++과 비교해서 설명한 책이 있었으면 정말 좋겠습니다.
: : 그런 책이 있으면 소개시켜 주세요.
: : 그럼, 글 읽어 주신 모든 분들 감사합니다. 복 받으실거예요.
: :
: :
: : C++에서는 동적 배열을 만들면 delete로 삭제를 해야 합니다.
: : 파스칼에서는 동적으로 만든것을 어떻게 삭제하는지요?
: : 배열은 new, dispose를 사용하면 안된다고 파스칼 안내서에서 읽었습니다.
: : 그리고 함수 선언을 할 때 인자값 초기화가 파스칼에서 가능한가요?
: :
: : 예를 들어
: : void __fastcall Test(Byte* bArray, int count = 10);
: : 이렇게 말입니다.
: :
: : void __fastcall TData::Test(Byte* bArray, int count)
: : {
: : bArray = new Byte[count];
: : for (int i=0; i<count; i++) {
: : bArray[i] = 0;
: : }
: : }
: :
: :
: : 파스칼로
: :
: : procedure TData.Test(bArray : Array of Byte; count : Integer);
: : var
: : i : Integer;
: : begin
: : SetLength(bArray, count);
: : for I:=0 to count do begin
: : bArray[i] := 0;
: : end;
: : end;
|