摘要:
要点:1.如果数组的范围缩小了,超出部分会被清除掉,非基本类型也不会调用析构函数(内存泄漏)program MyArray; //数组{$APPTYPE CONSOLE}uses SysUtils,Windows;{数组成员丢失}procedure MyFunc3();var arr:array of array of string;begin setlength(arr,2,3); arr[1,2]:='田攀QQ382477247'; Writeln(arr[1,2]); {田攀QQ382477247} setlength(arr,0,0); //缩小数组 setleng.. 阅读全文
摘要:
要点:1.Ptr函数相当于Pointer,强制转换为指针2.CopyMemory是内存复制,把第二个参数,赋值到第一个后面program MyArray; //数组{$APPTYPE CONSOLE}uses SysUtils,Windows;{合并2个动态数组}procedure MyFunc2();var arr1,arr2: TBytes; len,LastAddr: Integer;begin{设置2个数组长度} SetLength(arr1, 3); SetLength(arr2, 3);{给2个数组赋值} arr1[0] := 65; arr1[1] := 66; ar... 阅读全文
摘要:
要点:1.TBytes和C++里面的数组一样,数组名就是数组的首地址。而array [..] of char 不是指针,需要用取地址符号读地址@2.要获取TBytes某个元素位置的指针, 应该是 @MyTByteArr[x]; 但随着数组的再分配, 这个地址是变化的3.SetLength设置数组长度4.Ord是取字符对应的数字program MyArray; //数组{$APPTYPE CONSOLE}uses SysUtils;{用指针读取数组某个元素}procedure MyFunc1();var i: Integer; p: PByte; MyTByteArr: TBytes;/... 阅读全文