| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5765 人关注过本帖
标题:求助,如何用malloc为字符串数组分配空间
取消只看楼主 加入收藏
心空之上
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2018-5-29
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:3 
求助,如何用malloc为字符串数组分配空间
如题,我想读取一个文件中的所有字符串,然后存入字符串数组中。
我是这样声明字符串数组的: char tempstring[900][256]
但是事先并不知道文件里有多少个字符串,所以如果文件的字符串大于900,程序就会无法运行下去
但是如果我把字符串个数改为50000(也就是 char tempstring[50000][256]),程序还没运行就崩溃了,返回一个很大的数值
因此我想试试用malloc为字符串数组分配空间,但是有个问题是如果字符串真的达到50000个,那么申请50000*256的空间,系统会崩溃吗。
搜索更多相关主题的帖子: malloc 字符串 数组 分配 空间 
2018-09-26 18:28
心空之上
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2018-5-29
收藏
得分:0 
回复 2楼 no1xijin
刚刚试了一下声明一个50000的指向char的指针数组(char * tempstring[50000]),程序倒是可以运行,不明白什么原理。。
2018-09-26 20:14
心空之上
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2018-5-29
收藏
得分:0 
回复 3楼 吹水佬
是这样声明吗?
char * tempstring[50000];
int i;
for(i = 0; i< 50000;i++)
{
      tempstring[i] = (char*)malloc(256);
}
2018-09-26 20:26
心空之上
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2018-5-29
收藏
得分:0 
回复 6楼 no1xijin
但是我声明50000的字符串数组的话就不能够运行,声明50000的指向char的指针就能运行,下标都是50000
2018-09-26 21:08
快速回复:求助,如何用malloc为字符串数组分配空间
数据加载中...
 
   



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

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