关于 delphi 内存操作问题

pc248 pc248 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
各位大神好,小弟有点问题请教,虽然很菜,但还是自己搞不清楚。

代码如下


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的高手解答,非常感谢!!!




...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部