考虑我的示例代码:
var p512Sector:PByte;
.....
getmem(p512Sector, 262144);
FillChar( p512Sector,262144 ,0);
当我运行程序时,Delphi会给我一个违规访问错误。为什么呢?
答案 0 :(得分:11)
使用FillChar(p512Sector^, 262144, 0)
(注意取消引用^)。否则你将覆盖指针和内存中的东西,而不是分配的缓冲区。
答案 1 :(得分:5)
FillChar
需要一个无类型的变量。你应该取消引用指针:
FillChar(p512Sector^, ...);