| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1597 人关注过本帖
标题:关于动态内存分配
只看楼主 加入收藏
vitrual
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-8-22
收藏
得分:0 
拜谢过认真负责热心的kai斑竹~~~还给了链接和例子,真体贴

[此贴子已经被作者于2005-8-26 15:59:00编辑过]


2005-08-26 15:51
zinking
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:35
帖 子:916
专家分:0
注 册:2004-12-5
收藏
得分:0 
是啊,是啊,热心的斑竹,以后要多发问了,呵呵

http://kongfuziandlife. http://codeanddesign.
2005-08-30 09:18
ltn
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2005-9-3
收藏
得分:0 
将最后一行改成

int **ptr=new int[i][j];

即可
2005-09-03 13:27
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
ltn,
你的说法不对啊。你如果不信,自己试试就知道了。搞了半天我上面的都白写了。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-09-04 04:08
russilong
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2005-8-23
收藏
得分:0 
恐怕他没看上边写的,看过就清楚了

2005-09-04 11:04
zorro2zzz
Rank: 1
等 级:新手上路
威 望:1
帖 子:96
专家分:0
注 册:2005-9-11
收藏
得分:0 
斑竹,请问delete的时候要先将指针移到声明时候所在的位置吗?

编程是啥东西,让俺瞧瞧……
2005-09-11 22:24
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
你的问题我没看懂,你举个例子。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-09-12 05:02
zorro2zzz
Rank: 1
等 级:新手上路
威 望:1
帖 子:96
专家分:0
注 册:2005-9-11
收藏
得分:0 
比如:
#include <iostream>

class test
{
int X,Y;
public:
test();
test(int);
test(int,int);
~test();
int getX(){return X;}
int getY(){return Y;}
void setX(int i){X=i;}
void setXY(int j,int k){X=j;Y=k;}
}

test::test()
{
X=0;Y=0;
}

test::test(int n)
{
X=n;Y=0;
}

test::test(int n,int m)
{
X=n;Y=m;
}

test::~test()
{
cout<<"Delete...X="<<X<<",Y="<<Y<<endl;
}
void main()
{
test *ptrX=new test[3];
for (int i=0;i<3;i++)
{
ptrX->setX(3*i+2);
*ptrX++;
}

for(i=3;i>0;i--)
{
*ptrX--;
cout<<"ptrX="<<ptrX->getX()<<endl;
}

for(i=0;i<3;i++)
{
cout<<"ptrX="<<ptrX->getX()<<endl;
*ptrX++;
}
delet []ptrX;
}

这段程序应该是有问题的......
(上次没有给完整,对不起……)

[此贴子已经被作者于2005-9-12 10:52:32编辑过]



编程是啥东西,让俺瞧瞧……
2005-09-12 09:41
russilong
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2005-8-23
收藏
得分:0 
我觉得是类设计的问题,类中的成员对象应该在构造函数中初始化,而这个类中没有构造函数,却通过成员函数来初始化的。
当new时,首先就应该调用构造函数来初始化整个类,而这个类却做不到这点,所以类根本就无法建立,所以new是自然就有问题了。

2005-09-12 10:05
russilong
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2005-8-23
收藏
得分:0 

#include <iostream> using namespace std; class test { int X,Y; public: test(); test(int); test(int,int); ~test(); int getX(){return X;} int getY(){return Y;} void setX(int i){X=i;} void setXY(int j,int k){X=j;Y=k;} };

inline test::test() { X=0;Y=0; }

inline test::test(int n) { X=n;Y=0; }

inline test::test(int n,int m) { X=n;Y=m; }

test::~test() { cout<<"Delete...X="<<X<<",Y="<<Y<<endl; } void main() { test *ptrX=new test[3]; for (int i=0;i<3;i++) { ptrX->setX(3*i+2); *ptrX++; }

for(i=3;i>0;i--) { *ptrX--; cout<<"ptrX="<<ptrX->getX()<<endl; }

for(i=0;i<3;i++) { cout<<"ptrX="<<ptrX->getX()<<endl; *ptrX++; } for(i=3;i>0;i--) { *ptrX--; }//指针指向起始位置 delete []ptrX; }


2005-09-13 08:31
快速回复:关于动态内存分配
数据加载中...
 
   



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

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