Если вы знаете максимальный размер, он не слишком большой и вам нужна только одна копия, вам следует использовать статический буфер, выделенный во время загрузки программы:
char buffer[1000];
int buffSizeUsed;
Если какое-либо из этих предварительных условийложны, и вам нужна только информация во время работы программы, используйте malloc
:
char *buffer = malloc (actualSize);
Просто убедитесь, что вы проверяете, что распределение работает, и что вы освобождаете все, что выделяете.
Если информация должна пережить прекращение вашей программы или быть пригодной для использования другими программами в то же время, она должна быть помещена в файл (или долговременную разделяемую память, если у вас есть такая возможность).
И, если он слишком велик, чтобы поместиться в ваше адресное пространство сразу, вам нужно будет сохранить его в файле и прочитать его по частям за раз.
Это в основном происходит от самого простого /наименее гибкий к самым сложным / наиболее гибким возможностям.
Если ваши требования лежат в этом направлении, это решение, которое вам нужно принять.