如何给pchar分配空间?

解决方案 »

  1.   

    var
      p: pchar;
      Getmem(p, 10);
      Freemem(p);
      

  2.   

    用showmessage显示sizeof(p)=4而不是10
    ???
      

  3.   

    var
      p: pchar;
    begin
      p := stralloc(10) ;
      StrPCopy(P, 'sllgele') ;
      ShowMessage(IntToStr(SizeOf(p))) ; //变量的大小,即所占的字节数 
      ShowMessage(IntToStr(Length(p))) ; //变量的长度  
      strdispose(P);
    end;
      

  4.   

    ShowMessage(IntToStr(Length(p))) ; //变量的实际长度
      

  5.   

    查一下帮助文件可一看到,pchar是一指针,32位,也就是4个字节
    A PChar is a pointer to a null-terminated string of characters of the type Char.
      

  6.   

    var
      p: pchar;
      Getmem(p, 10);
      Freemem(p);
    p中放的不是字符串,而是一个指向该字符串的指针,所以用sizeof(p)就只能拿到指针的size了,就是4,明白?