예로서
TTestRcd = record
sName : String;
sAlias : String;
end;
과 같이 레코드를 정의하고
TTestRcdArray = array [ 0..10 ] of TTestRcd;
와 같이 변수를 선언하고 쓰면 아무런 문제가 없습니다.
하지만,
PTestRcd = ^TestRcd;
New( PTestRcd );
와 같이 다이나믹 메모리로 할당받고, 쓰면 sName, sAlias등에 데이타가 깨져서 들어갑니다.
저의 경험으로는 델파이 5의 패치에서 해결되었던 문제였고, 델6에서는 아무 문제없이 동작하던
코드 였는데 델7( 패치 안되어 있음 )에서는 레코드안의 내용이 깨지는 문제가 계속 발생합니다.
비슷한 종류의 경험이 있으신 분은 답좀 부탁합니다. 저도 이 문제가 어떻게 해결될지 계속
테스트를 해보겠습니다.
|