| 发表于:2007-11-24 21:26:307楼 得分:0 |
大哥,不晓得你测试过没有,方式2要报错,测试代码如下: procedure testpcharrecord; var strc, strc1: avcstruct; a1,a2,a3 : array[0..1023] of char; begin strc.char1 := @a1; strc.char2 := @a2; strc.char3 := @a3; strc.int1 := 1; strc.int1 := 1; getmem(strc1.char1, 1024); getmem(strc1.char2, 1024); getmem(strc1.char3, 1024); strc1.char2 := '127.0.0.1'; strc1.char3 := 'scp'; freemem(strc1.char1); // 没有付值,所以在释放内存时没有报错 freemem(strc1.char2); // 在此处就报错,错误为: invalid pointer operation freemem(strc1.char3); end; 错误为: invalid pointer operation. | | |
|