标题:请教c++编程问题,急
取消只看楼主
palley
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-5-30
 问题点数:0 回复次数:1 
请教c++编程问题,急
大家看看下面这段程序,我分别让Nwk等于三个不同的值,但是却出现这样的怪事,
当 Nwk = 147755616 时,内存可以分配成功;
当 Nwk = 347755616 时,内存无法分配成功;
当 Nwk = 631812378 时,内存又可以分配成功;

请问这是怎么回事,这段代码可以直接编译,没什么错误,大家可以试一下
我对内存管理不是很熟,忘各位高手指教,谢谢!

#include <stdio.h>
#include <math.h>
#include <fstream.h>
#include <string.h>
#include <time.h>
#include "stdlib.h"

void main( void )
{
  double *Gk ;
  int Nwk ;

  Nwk = 147755616 ;
  Nwk = 347755616 ;
  Nwk = 631812378 ;
  Gk = new double[Nwk] ;

  if ( Gk==0)
  {
    printf("Error!!!\n") ;
    exit(0) ;
  }
  else
  {
    printf("ok!!!!!\n") ;
  }

delete []Gk ;

}
搜索更多相关主题的帖子: include double 
2005-05-30 15:43
palley
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-5-30
得分:0 
我还发现一个问题,运行的时候我把任务管理器打开,监视其内存使用情况,发现,当N=147755616时所用的内存比当

N=631812378时使用的内存还要大。

楼上的兄弟说要重载new和delete运算符,具体怎么实现,能否在程序中指明一下,谢谢!
2005-05-30 21:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-19695-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.071252 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved