gpt4 book ai didi

arrays - 调整大小时,Delphi中的SetLength是否保留内存?

转载 作者:行者123 更新时间:2023-12-03 19:15:47 24 4
gpt4 key购买 nike

在Delphi中,如果使用setlength来增加或减少动态数组的大小,它会保留数组的原始内容吗?

一维或多维数组是否相同?

到现在为止,我一直认为当扩大大小时它将保留旧数据,但是不确定是否总是这样,还是我一直很幸运。

最佳答案

在Delphi中,如果使用SetLength来增加或减少动态数组的大小,它是否保留数组的原始内容?


是。


一维或多维数组是否相同?


是。请记住,多维数组仅是元素类型为数组的一维数组。因此,对于一维数组,您所知道的适用于多维数组。



documentation确实涵盖了这一点:


对于动态数组变量,SetLength将S引用的数组重新分配给给定长度。保留阵列中的现有元素,并将新分配的空间设置为0或nil。对于多维动态数组,SetLength可以使用多个长度参数(最多为数组维数)。每个参数指定沿特定维度的元素数量。

关于arrays - 调整大小时,Delphi中的SetLength是否保留内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21390604/

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