CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

我用new(char[int])或者malloc(int*sizeof(char))分配内存(int>4),为什么对得到的指针调用sizeof()函数只有4?

楼主KeepRun(void)2002-02-15 22:55:28 在 C/C++ / C语言 提问

我用new(char[int])或者malloc(int*sizeof(char))分配内存(int>4),为什么对得到的指针调用sizeof()函数只有4? 问题点数:20、回复次数:5Top

1 楼zheng_can(nothrow)回复于 2002-02-15 23:03:11 得分 5

你用的是Windows下的编译器吧  
  你现在所得到的大小是一个指针的大小(32bits)  
  因为你是在调用   sizeof(   Pointer   )  
  Windows下,为了要支持4G的内存,就是用了   32bit   的指针(配合保护模式)Top

2 楼songhtao(三十年孤独)回复于 2002-02-15 23:12:55 得分 5

正常因为指针值是指向数据的地址,32位机中地址正好是4个字节表示的。Top

3 楼sin4x(一瓶水)回复于 2002-02-15 23:18:16 得分 5

返回的是保存int所用的空间,在不同机器会有不同的结果  
  Top

4 楼hz129(古雨)回复于 2002-02-16 01:56:19 得分 5

int   a[10];  
  sizeof(a)   的值为10  
   
  int   *p;  
  p   =   new   int[100];  
  sizeof(p)   的值为4  
  因为sizeof(p)求的是指针本身所占的空间大小,在32位环境下指针占4字节,所以为4,具体参见《高质量C++编程》Top

5 楼KeepRun(void)回复于 2002-02-16 10:49:56 得分 0

谢谢,差点儿忘记了,做个DOS程序,暂时没编译器,只好用VC。Top

相关问题

  • 关于new,malloc,GlobalAlloc函数...
  • 求malloc的函数源码??
  • 调用char *成员函数
  • 怎么去实现一个 malloc() 函数?
  • 在VC++中用malloc函数的问题
  • 关于malloc函数的问题
  • 求函数malloc的实现源代码~
  • 关于sizeof()函数的疑问?
  • 请问char到int的函数??谢谢
  • [8]STRING的构造函数 string(char * value)

关键词

  • 指针
  • 内存
  • 调用
  • sizeof
  • 得到
  • 大小
  • char

得分解答快速导航

  • 帖主:KeepRun
  • zheng_can
  • songhtao
  • sin4x
  • hz129

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo