Я хотел бы знать, какой самый эффективный способ чтения и хранения списка строк в C.
Каждая строка может иметь разную длину, поэтому предварительное выделение большого 2D-массива было бы расточительным. Я также хочу избежать отдельного malloc для каждой строки, так как строк может быть много.
Строки будут считаны из большого буфера в эту структуру данных списка, о которой я спрашиваю.
Можно ли хранить все строки отдельно с помощью одного выделения точно нужного размера?
Одна из идей, которые у меня есть, состоит в том, чтобы хранить их непрерывно в буфере, а затем иметь массив char *, указывающий на разные части в буфере, в котором будут '\ 0's для разграничения. Я надеюсь, что есть лучший способ.
struct list {
char *index[32];
char buf[];
};
Структура данных и строки будут строго доступны только для чтения.
malloc
для каждой строки. - person RedX   schedule 12.03.2014