荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: huhaiming (一生只爱她), 信区: Program
标 题: [合集]一个头大的问题
发信站: 荔园晨风BBS站 (2005年02月05日01:46:01 星期六), 站内信件
☆ 1 ──────────── 我是分割线 ─────────────────☆
发信人: gladone (gladone), 信区: Program
标 题: 一个头大的问题
时 间: 2004年12月13日21:20:25 星期一
用的是VC6.0环境。
#include<iostream>
using namespace std;
int main()
{
char* string = new char[2];
// char* string ;
// realloc(string,10);
// cin.getline(string,20);
int count ;
count = sizeof(string);
cout<<count;
// free(string);
delete [] string;
return 1;
}
原本的目的是想在已分配了大小的空间上再加大空间,却找不到和new相配的函数。只好用
realloc(),却发现不能使用delete和free()了,不过可以无限输入字符而不报错。
请问:1.有和new运算符配合的用来增加空间的函数吗?
2.在上面的情况下怎么释放资源?
3.如果使用char* string;后realloc(string,10);就会报错为什么?
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.138]
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.138]
☆ 2 ──────────── 我是分割线 ─────────────────☆
发信人: gladone (gladone), 信区: Program
标 题: Re: 一个头大的问题
时 间: 2004年12月13日21:29:49 星期一
刚才再试了一下,改为:
#include<iostream>
using namespace std;
int main()
{
char* string = new char[2];
cin>>string;
cout<<string<<'\n';
// char* string ;
realloc(string,10);
cin.getline(string,20,'b');
int count ;
count = strlen(string);
cout<<count;//<<'\n';
cout<<string<<'\n';
free(string);
// delete [] string;
return 1;
}
发现free()是可以的。
☆ 3 ──────────── 我是分割线 ─────────────────☆
发信人: oopilix (优雅的), 信区: Program
标 题: Re: 一个头大的问题
时 间: Tue Dec 14 12:21:27 2004
c++不能用realloc
你可以先delete,再new.
☆ 4 ──────────── 我是分割线 ─────────────────☆
发信人: gladone (gladone), 信区: Program
标 题: Re: 一个头大的问题
时 间: 2004年12月14日15:36:22 星期二
这样做达不到在原有空间上添加资源的目的。
☆ 5 ──────────── 我是分割线 ─────────────────☆
发信人: oopilix (优雅的), 信区: Program
标 题: Re: 一个头大的问题
时 间: Tue Dec 14 19:09:25 2004
then u can #include <malloc.h>
use c style.
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店