gpt4 book ai didi

arrays - 当与 Delphi 中的 SetLength 一起使用时,动态数组的内存中有什么?

转载 作者:行者123 更新时间:2023-12-03 14:45:23 28 4
gpt4 key购买 nike

我有一个动态数组myArr。当我们使用 SetLength 时,myArr 的内存中存储了什么?是“00”吗?还是未定义?

在本例中,

SetLengthmyArr 分配 16 字节内存。

myArr : array of byte;

SetLength(myArr, 16);

最佳答案

引自 Delphi 7 帮助,“对于长字符串或动态数组变量,SetLengthS 引用的字符串或数组重新分配为给定长度。现有角色数组中的字符串或元素被保留,但新分配的空间的内容未定义。一个异常(exception)是当增加动态数组的长度时,其中的元素是必须初始化的类型(字符串、Variants、Variant 数组或包含此类类型的记录)。当S是必须初始化的动态类型数组时,新分配的空间将设置为0nil。”

根据我的观察,对于静态数组,未初始化的元素包含随机数据。对于动态数组,据我所知,从 Delphi 7 开始,未初始化的元素包含其 default nothing 值。但是,您不应该依赖这一事实,因为它是 SetLength 的实现细节。您应该遵循官方文档。

关于arrays - 当与 Delphi 中的 SetLength 一起使用时,动态数组的内存中有什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3984789/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com