各位大神好,小弟有点问题请教,虽然很菜,但还是自己搞不清楚。
代码如下
Var
Str:string;
Buffer:array [0..511] of Byte;
i:Integer;
begin
for i:=0 to 511 do
begin
Buffer[i]:=$30;
end;
SetLength(Str,512);
CopyMemory(Pointer(Str),Pointer(@Buffer),512);
end;
1, SetLength(Str,512); // 请问这里,指定字符串大小,但没有指定字符串的空间,会不会覆盖到内存数据?
2, 如果str已经在之前赋值了,比如 str:=123; 那么需要不需要重新分配空间呢? 你如 new (Pointer(123));但是释放的时候会出错。
3,如何给str分配空间呢?直接改变str的指针,指向memalloc后的地址?还是 GetMem(Pointer(str),512); ? 但是释放会出错啊。。
4,晚辈非科班出身,想询问业内人士,无奈认识的大牛很少,都去做移动开发了,delphi大牛不知何处寻,所以恳请csdn的高手解答,非常感谢!!!