编译器,编译的时候自动数出要分配的结构的大小,    sezeof()的作用就是,编译的时候自动数出要分配的结构的大小.    运行时已经是一个常量了:    Cus   = record
    begin
       Name  :array[0..20] ;
       age   :int;
    end;
       .
       .      //     showMessage(inttostr(sizeof(Cus)));  编译前-->
      showMessage(inttostr(25));   //编译后
     ..
       ..
       

解决方案 »

  1.   

    Delphi中分配内存大小用AllocMem,最好不要使用SizeOf(指针)这样的用法。另外楼上的语法错了,应该是
    Cus = record
       Name  :array[0..20] of ...;
       age  :integer;
    end;
      showMessage(inttostr(sizeof(Cus)));  编译前-->
      showMessage(inttostr(25));  //编译后如果结构中还有一个指针成员,就最好不要使用SizeOf(Cus)了,而对定义为该结构的一个实例来SizeOf
      

  2.   

        
       什么意思,?
       而对定义为该结构的一个实例来SizeOf ???    那不是一样吗?
      
        sizeof 不会去量,指针说指向的内容.所以即使实例,量出来的还是一样啊!