标题:求助,如何用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



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




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

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