编程论坛
注册
登录
编程论坛
→
C++教室
栈空间开辟问题
G梦
发布于 2013-04-06 19:36, 633 次点击
问题:当栈空间不够用时,要把它的空间自动增为两倍,并且释放原来的空间(以学生成绩为实例)
求指教
9 回复
#2
邓士林
2013-04-06 21:09
int *newArray=new int[maxsize*2]关键的语句
#3
peach5460
2013-04-07 07:22
开辟个新空间,把原来的赋过去
#4
G梦
2013-04-07 23:38
回复 2楼 邓士林
我想把原来的内容赋进去的,就把原栈顶指针赋给新指针,然后再把新指针赋给栈底,可是还是不成功,怎么回事啊?求破。。。。
CStuScore *newArray=new CStuScore[m_nSize*2];
buffer = newArray; // 开辟栈空间
if ( buffer != NULL)// 开辟成功
{
sp = newArray;// 初建时,sp指向栈底
newArray=buffer;
delete [m_nSize]buffer;
buffer=NULL;
cout<<"空间已成功扩展,原空间已释放"<<endl;// 显示成功的提示信息
#5
peach5460
2013-04-08 08:42
以下是引用
G梦
在2013-4-7 23:38:49的发言:
我想把原来的内容赋进去的,就把原栈顶指针赋给新指针,然后再把新指针赋给栈底,可是还是不成功,怎么回事啊?求破。。。。
CStuScore *newArray=new CStuScore[m_nSize*2];
buffer = newArray; // 开辟栈空间
if ( buffer != NULL)// 开辟成功
{
sp = newArray;// 初建时,sp指向栈底
newArray=buffer;
delete [m_nSize]buffer;
buffer=NULL;
cout<<"空间已成功扩展,原空间已释放"<<endl;// 显示成功的提示信息
吐血
#6
yuccn
2013-04-08 12:05
你是指堆空间吧
#7
G梦
2013-04-10 19:48
回复 5楼 peach5460
为嘛?
血可不能乱吐啊
#8
G梦
2013-04-10 19:51
回复 6楼 yuccn
是栈空间自动开辟
#9
peach5460
2013-04-11 06:47
newArray=buffer;
你是不是觉得只要这样就是把数组的值都赋值过去了?
#10
G梦
2013-04-12 10:33
回复 9楼 peach5460
是啊,到底出什么问题了?求指教
1