关于指针类型,关于FreeMem出错.
type
TAT_INFO = record
JobTime: DWord;
DaysOfMonth: DWord;
DaysOfWeek: UCHAR;
Flags: UCHAR;
Command: PWideChar;
end;
PAT_INFO = ^TAT_INFO;
var
ATInfo : PAT_Info;
dwJobID : PDWORD;
第一个问题:
if ATInfo = nil then Exit;
和
if @ATInfo = nil then Exit;
有什么区别?
第二个问题:
ATInfo是否需要用GetMem分配内存?
为什么要分配?为什么普通的自定义结构不需要?
分配之后是否应该使用ZeroMemory清零?
dwJobID是PDWORD的指针类型,在调用是否也需要用GetMem分配内存?
第三个问题:
ATInfo^.JobTime := dwRemoteTime;
ATInfo^.DaysOfMonth := 0;
ATInfo^.DaysOfWeek := 0;
ATInfo^.Flags := 1;
ATInfo^.Command := wcCommand;
dwReturn := NetScheduleJobAdd(wcServer, ATInfo, dwJobID);
FreeMem(ATInfo); //这句出现异常
PS:本人很菜,希望大牛别鄙视.