标题:[求助]老是说xalloc没声明
取消只看楼主
wangxiang
Rank: 2
等 级:新手上路
威 望:5
帖 子:376
专家分:0
注 册:2006-3-28
 问题点数:0 回复次数:5 
[求助]老是说xalloc没声明

#include <iostream>
#include <cerrno>
using namespace std;
template<class T>
void ChangeSize1D(T *&x,int size,int Tosize)
{
T * NewX =new T[Tosize];
for(int i = 0;i < size; ++i)
NewX[i] = x[i];
delete []x;
x = NewX;
}
int main()
{
float *x;
try{x = new float[3];}
catch(xalloc){
cerr<<"Out of Memory"<<endl;
exit(1);
}
try{ChangeSize1D(x,3,5);}
catch(xalloc)
{
cerr<<"Could bot create x"<<endl;
exit(1);
}
x[4] = 4;
cout<<x[4]<<endl;
delete []x;
system("pause");
return 0;
}
d:\c++练习\cpp1.cpp(17) : error C2061: syntax error : identifier 'xalloc'

搜索更多相关主题的帖子: xalloc 声明 catch int include 
2006-10-07 18:17
wangxiang
Rank: 2
等 级:新手上路
威 望:5
帖 子:376
专家分:0
注 册:2006-3-28
得分:0 

费了不少时间才知道xalloc只在BCB里用


2006-10-07 21:21
wangxiang
Rank: 2
等 级:新手上路
威 望:5
帖 子:376
专家分:0
注 册:2006-3-28
得分:0 

谢谢,帮我指出那么多的错误!
确实没考虑到安全性,我再去改改


2006-10-08 09:32
wangxiang
Rank: 2
等 级:新手上路
威 望:5
帖 子:376
专家分:0
注 册:2006-3-28
得分:0 
修改了一下,有个问题:不知道该如何判断x这个空间是不是动态开辟的
#include <iostream>
#include <cerrno>
#include <new>
using namespace std;
template<class T>
bool ChangeSize1D(T *&x,int size,int Tosize)
{
if(0 == size)
return false;
T * NewX =new T[Tosize];
if(x == NULL)
return true;
int n = (size < Tosize)? size : Tosize;
for(int i = 0;i < n; ++i)
NewX[i] = x[i];
delete []x; //kai,我这里该如何判断x是不是动态开辟的呢
x = NewX;
return true;
}
int main()
{
float *x;
try{x = new float[3];}
catch(bad_alloc){
cerr<<"Out of Memory"<<endl;
exit(1);
}
try{if(ChangeSize1D(x,3,5))
cout<<"x was create!"<<endl;
}
catch(bad_alloc)
{
cerr<<"Could not create x"<<endl;
exit(1);
}
x[4] = 4;
cout<<x[4]<<endl;
delete []x;
system("pause");
return 0;
}

2006-10-08 09:52
wangxiang
Rank: 2
等 级:新手上路
威 望:5
帖 子:376
专家分:0
注 册:2006-3-28
得分:0 

是的
数组不能通过编译


2006-10-08 21:47
wangxiang
Rank: 2
等 级:新手上路
威 望:5
帖 子:376
专家分:0
注 册:2006-3-28
得分:0 

哈哈,谢谢了


2006-10-09 11:24



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




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

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