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