1
当我加入Fillchar()
后寻找做C'S memset()
相当于帕斯卡程序给一个运行时错误216赛格故障/错误216使用Fillchar()
这里是我的代码(如果我删除FillChar(),它工作正常):
function NewFoo(name : string) : ptrfoo;
var sym : ptrfoo;
begin
new(sym);
FillChar(sym, SizeOf(foo), #0);
sym^.name := name;
NewFoo := sym;
end;
foo
是record
和fooptr
到它定义为type fooptr = ^foo;
一个指针。
我该如何解决这个问题?
非常感谢。我在互联网上搜索了很多如何做动态分配的例子,并用零填充'malloc()/ memset()'C世界,所以与我的代码相比,但我找不到。 –
@ TheMask这是等价的(或多或少)。 Pascal语义与C不一样,如果你来自C背景,这可能是最令人讨厌的区别。它只是需要一些习惯。 – Thomas