标题: [疑问] 救!!!向文件输出时不知为何堆里的数据遭到改变[已解决]
jasonway
LU新生
Rank: 1



UID 44865
精华 0
积分 3
帖子 6
活跃指数 3
LU金币 9 个
LU金条 0 个
阅读权限 10
注册 2006-4-12
 
发表于 2006-4-14 12:09  资料  个人空间  短消息  加为好友 
救!!!向文件输出时不知为何堆里的数据遭到改变[已解决]

write是site的友元。不知为何,在输出y的时候map[2][0]就会遭到改变,本来是1,就变成了8240。。。。无论怎样,map[2](i为任意数)这一列总是会遭到修改。。。(用trace看出来的)

现在换成vc6编译,又正常了..........汗

#include<iostream.h>
#include<fstream.h>
#include<stdlib.h>

class site
{
public:
  friend void write();

protected:
  long int maxpeople;
  int type;
};

int mx,my;
int x,y,n;
site **map;
site mini[10][10];
int *d;
ofstream logtxt("log.txt");

void main()
{
read();
getmemory();
generate();
write();
}

void getmemory()
{
if ((map=new site*[x])==NULL)
{
  logtxt<<"Error in getting memory.";
  exit(1);
}
if ((map[0]=new site[x*y])==NULL)
{
  logtxt<<"Error in getting memory.";
  exit(1);
}
for(int i=1;i<x;i++)
{
  map=map[i-1]+y*n;
}
}

void write()
{
ofstream fou("map.txt");
fou<<x<<" "<<y<<"\n";\\运行到这一句就出问题!见下。

int i,j;

for(j=0;j<y;j++)
{
  for(i=0;i<x;i++)
  {
   fou<<map[j].maxpeople<<" ";
  }
  fou<<"\n";
}

for(j=0;j<y;j++)
{
  for(i=0;i<x;i++)
  {
   fou<<map[j].type;
   fou<<" ";
   fou.flush();\\用了这个以后似乎情况有所改善。。
  }
  fou<<"\n";
}

};

[ 本帖最后由 jasonway 于 2006-4-20 17:34 编辑 ]

顶部
 



当前时区 GMT+8, 现在时间是 2008-12-5 10:08
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 0.072131 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver