Массивы разных размеров при чтении из потока - PullRequest
0 голосов
/ 28 сентября 2011

При записи символов в массив из потока, есть ли способ сделать длину массива точным количеством символов, если размер потока неизвестен при компиляции? Например, при чтении текста вводится в массив, а размер текста может быть любой длины.

Ответы [ 3 ]

2 голосов
/ 28 сентября 2011

Найти размер файла

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

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

Выделить память

char *buf = malloc(size);
1 голос
/ 28 сентября 2011

Прошло много времени с тех пор, как я написал C, но я думаю, что вы можете использовать функцию malloc () для динамического выделения блока памяти.

char* str = malloc( sizeof( char ) * lengthOfStream ) ;
0 голосов
/ 28 сентября 2011

Вы спрашиваете об увеличении длины каждого размера элемента массива или хотите увеличить длину или размер массива (элементов no.of)

, если хотите увеличить элементы no.ofзатем используйте этот синтаксис

char array[];

, если вы говорите об отдельном элементе, его невозможно увеличить, потому что тип данных, по которому мы объявили массив, был постоянным.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...