CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

请问一个关于realloc函数的问题

楼主Novice_wen(新手)2005-04-02 19:12:15 在 C/C++ / C++ 语言 提问

void   main()  
  {  
                    int   *p;  
          p=new   int[1];  
                    p[0]=1;  
        p=(int*)realloc(p,2);  
  p[1]=2;  
  }  
   
  请问,为什么在对p重新分配空间后,原来p[0]的内容就消失了? 问题点数:0、回复次数:10Top

1 楼lw1a2(一刀 现在改六点下班了:()回复于 2005-04-02 19:21:02 得分 0

什么编译器?Top

2 楼zjlxysunman(我是小菜)回复于 2005-04-02 19:21:22 得分 0

p   =   (int   *)realloc(p   ,   sizeof(int)   *   2);Top

3 楼chunhai12(小海)回复于 2005-04-02 19:29:49 得分 0

void   main()  
  {  
          int   *p;  
          p   =   new   int[1];  
          p[0]   =   1;  
          p   =   (int*)realloc(p,   sizeof(int)*2);  
          p[1]   =   2;  
          delete[]   p;  
  }Top

4 楼kobefly(科比--网络学习中)回复于 2005-04-02 20:31:56 得分 0

你第二次分配的时候,比第一次还少!  
   
  第2个参数,应该是字节数,也就是2×sizeof(int)   ==   8Top

5 楼blow_jj(阿俊)回复于 2005-04-02 20:58:35 得分 0

同意chunhai12(苦行僧)的代码Top

6 楼arrowcy(长弓手)回复于 2005-04-02 23:49:53 得分 0

p=(int*)realloc(p,2);  
  int是4个字节的,新分配的只有两个字节,当然出问题了Top

7 楼arrowcy(长弓手)回复于 2005-04-02 23:51:57 得分 0

实际上这是你的操作p[1]=2都是错误的  
  在使用内存分配函数时,最好使用   sizeof(类型)*个数   来指定内存大小,这一方面可以避免上面你犯的那种错误,另一方面还可以增强程序的可移植性Top

8 楼Novice_wen(新手)回复于 2005-04-03 00:52:02 得分 0

哦,原来是这样啊。Top

9 楼Novice_wen(新手)回复于 2005-04-03 00:54:33 得分 0

为什么说p[1]=2这样操作是错的?Top

10 楼MagicCarmack(MagiC++)回复于 2005-04-03 01:00:43 得分 0

p=(int*)realloc(p,2);  
  int是4个字节的,新分配的只有两个字节,当然出问题了  
  Top

相关问题

  • 怎么用new,实现realloc函数
  • 高分提问有关 realloc 函数的问题。!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1!
  • 高分提问一个有关函数 realloc 的问题。!!!!!!!!!!**********!!!!!!!!!!!!
  • 如何在C++ 中实现函数 realloc(),具体代码如下:
  • 请教一个有关'realloc函数问题,在线等......'
  • new操作符能够实现C中realloc函数的功能?
  • 函数
  • 函数
  • 函数?
  • 函数

关键词

  • realloc
  • 分配
  • 问题
  • sizeof

得分解答快速导航

  • 帖主:Novice_wen

相关链接

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

广告也精彩

反馈

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