社区
C语言
帖子详情
如果我不知道他要输入多少个字符,怎么开辟内存??
yesman
2002-12-21 01:34:51
char* ch = new char[20];
但是如果我不知道他要输入多少个字符呢
我怎么开辟内存比较好
...全文
86
11
打赏
收藏
如果我不知道他要输入多少个字符,怎么开辟内存??
char* ch = new char[20]; 但是如果我不知道他要输入多少个字符呢 我怎么开辟内存比较好
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rushman
2002-12-21
打赏
举报
回复
不知道要输入多少字符,如何分配数组大小。
因此关键还是解决溢出问题。
还有一种方法,就是一个字符一个字符的读。也可以避开这个问题。这样控制起来很灵活,但是也很麻烦。
qqbigdog
2002-12-21
打赏
举报
回复
用动态组建一个数组,char *p=new char[];
就好拉
rushman
2002-12-21
打赏
举报
回复
不赞成开辟大缓冲区的方法。缓冲区再大也可能溢出。
而且在通常情况下,如果没有必要不要使用动态分配的内存,而应该尽量在栈中分配临时变量。
rushman
2002-12-21
打赏
举报
回复
补充一下:
如果缓冲不够大,还可以将一行分多次读取,再接到一起。
俞庆平
2002-12-21
打赏
举报
回复
同意::Zark(金陵五月)
通常的方法是先开256字节,在堆上,用NEW.因为通常这个是输入缓冲区的长度,如果发现不够了,再在堆上开256*2字节,将原来的内容拷贝进去,把原来的DELETE掉.如此反复.
rushman
2002-12-21
打赏
举报
回复
用fgets或cin.getline等类似的函数可以保证不溢出。
sjd163
2002-12-21
打赏
举报
回复
学习
Zark
2002-12-21
打赏
举报
回复
通常的方法是先开256字节,在堆上,用NEW.因为通常这个是输入缓冲区的长度,如果发现不够了,再在堆上开256*2字节,将原来的内容拷贝进去,把原来的DELETE掉.如此反复.
用VECTOR是个省事方法,但VECTOR的原理是以上所说的一样的.
prosong
2002-12-21
打赏
举报
回复
/**看看这个*/
#include "string.h"
#include "stdlib.h"
#include "stdio.h"
/*就假设回车结束*/
char* getData(){
int BUF_SIZE=16;
int bufSize = BUF_SIZE;
char ch = '\0';
int pos = 0; //字符所在的位置
char * tmp= 0; // 临时变量
char *buf = (char*)malloc(bufSize);
while((ch=getchar())!='\n'){
buf[pos]=ch;
pos++;
buf[pos] = '\0';
if(pos>=bufSize-1){
bufSize += BUF_SIZE;
tmp = (char*)malloc(bufSize);
strcpy(tmp, buf);
free(buf);
buf=tmp;
}
}
return buf;
}
int main(){
char* buf = getData();
printf("%s", buf);
free(buf);
return 0;
}
handboywj
2002-12-21
打赏
举报
回复
用char* ch = new char[20];
yatuor
2002-12-21
打赏
举报
回复
用vector
[正式学习java③]——字符串在
内存
中的存储方式、为什么字符串不可变、字符串的拼接原理,键盘录入的小细节。
在java中,
内存
中有两个地方可以存储字符串,一个是字符串池,一个是堆
内存
,串池中的字符串不会重复,而堆中的字符串每次都会
开辟
一块新的空间,因为维护串池的是一个hashtable,以字符串hashcode作为建,引用作为...
c语言
输入
任意长度字符串,读取不定长字符串
输入
C语言通常使用scanf处理
输入
,如果要读取字符串,那么就需要定义一
个字符
数组(char[])。可是,如果数组定义长度不足,就可能发生溢出。...因此,我通过循环使用getchar逐个读取字符的方式,将所有
输入
字符读取...
编写程序,统计字符串str中含有子字符串substr的个数
编写程序,统计字符串str中含有子字符串substr的个数。 要求:(1)字符串从键盘
输入
;(2)分别用下标法和指针法实现。 思路: 首先你需要从键盘
输入
原字符串,再
输入
...想要
知道
这个子字符串在原字符串中到底有没...
字符串
输入
输出函数和字符串处理函数
c 语言的标准库提供了很多非常有用的字符串处理函数。...文章有点长,有需要请根据目录跳转,如果觉得有用请点个赞哟,你的鼓励就是对我最大的支持,谢谢你。 二、字符串输出函数 三、字符串处理函数
如何
输入
多组字符串c语言,求教大侠:如何
输入
一组字符串
各位大侠,小弟定义了一个char型指针数组,想用这个char型指针数组存一组字符串。可字符串
输入
总是出错:代码如下:#include#include#include#include"string.h"#definePprintf#defineSscanf#defineGgetch();#...
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章