DELPHI中动态数组和指针使用一点小体会(10分)

  • 主题发起人 主题发起人 onedot
  • 开始时间 开始时间
O

onedot

Unregistered / Unconfirmed
GUEST, unregistred user!
最近我把一个C++程序翻译为DELPHI,运行结果总不一致
结果到最后我一个个数据跟踪,才发现了一个我非常容易忽视的错误
而DELPHI给固定类型动态数组指定大小时却不给初始值,是需要程序员自己初始化。
而C/C++里却是自动初始一个值。对于没怎么考虑给数组初始化的C++/C的朋友来说是相当危险的。
EG:a:array of integer;
...
setlength(a,100);
a里所有数据都是随机的

此外,在DELPHI里使用指针实际也和C++/C里一样的灵活,大家都知道偏移量单位一般都是
SIZEOF(X)的倍数,但非常需要注意的是要使用对X
eg:p:^A;//A为某个数据类型(固定或自定义的)
SIZEOF(A)和SIZEOF(P)意义是不同的,不要使用错了//前者用的机会多,后者很少,但也有
 
Sizeof(P)返回的是指针本身的长度,在32位操作系统中,通常是4个字节。
 
你 SizeOf(P^) 不就不容易错了:)

 
接受答案了.
 
后退
顶部