软件注册站
热情软件屋

 
char *str = new char[100];为什么sizeof(str)==4?
编号: QA004255    
建立日期: 2001年6月12日 最后修改日期: 2001年6月19日
所属类别: C/C++ - 其他方面
   
    操作系统: windows 98/2000
    编程工具: c++ 5.0
    问题: char *str = new char[100];
    为什么sizeof(str)==4?
    水平: 刚入门(jackie)
   
    str是一个char型指针,指针的大小为4个字节,所以sizeof(str)返回4是正确的。至于你给这个指针所指的区域分配了多大的内存是无法用sizeof得到的。
    
    jimmyxu的意见:
    这100个字节所占的空间不一定是连续的,不像char str[100]的所占空间是连续的。如果这个时候,你取sizeof(str) ,你会得到100。这也是获取数组大小的常用方法。
    
    相关问题:
    QA004099 "用new 分配了10个字节,可是用strlen(_str)检查发现它的空间是大于10"
    QA004889 "发现所分配的空间不够的时候,如何重新分配"

    

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, 其他方面,

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio