从流中读取时的不同大小数组

时间:2011-09-28 13:23:07

标签: c arrays stream

当从流中向字符写入字符时,如果在编译时未知流的大小,是否有办法使数组的长度成为确切的字符数?例如,当读取文本输入到数组中时,文本的大小可以是任意长度。

3 个答案:

答案 0 :(得分:2)

查找文件大小

fseek(fp, 0, SEEK_END);
size = ftell(fp);

/* Rewind. */
fseek(fp, 0, SEEK_SET);

分配内存

char *buf = malloc(size);

答案 1 :(得分:1)

我写过C已经有一段时间了,但我相信你可以使用malloc()函数动态分配一块内存。

char* str = malloc( sizeof( char ) * lengthOfStream ) ;

答案 2 :(得分:0)

您是否要求增加每个数组元素大小的长度,或者想要增加数组的长度或大小(no.of elements)

如果你想增加no.of元素,那么使用这个语法

char array[];

如果你在谈论单个元素,那么它不可能增加,因为我们解析数组的数据类型是不变的。

谢谢