массив структур? - PullRequest
       6

массив структур?

0 голосов
/ 27 ноября 2011

Я пытаюсь записать строковый контейнер для моей строковой структуры, но он не работает. Мне кажется, что я показываю всем свой код и жду простого ответа, чтобы заставить меня работать, но мне бы хотелось получить совет или несколько указателей, которые помогут мне в этом. Сейчас я не хочу, чтобы этот контейнер мог содержать что-либо еще, кроме пользовательской строки , которую я написал ранее, что, кстати, работает нормально.

Весь код является упрощенной версией моей настоящей строковой структуры, потому что нет необходимости публиковать ее; все, с чем мы имеем дело, это контейнер строк.

header.h

typedef struct string string;

source.c

struct string {
    char *buffer;
    unsigned int size;
};

Буду ли я делать:

string ** array_of_strings;

или

string * array_of_strings;

тогда я хочу сделать что-то вроде:

client.c

array_of_strings = (string *) malloc(0);

Когда я звоню malloc(0), я хочу, чтобы там было array_of_strings[0] и если бы я realloc(1), я бы хотел, чтобы это было array_of_strings[1].

Есть ли лучший способ сделать это, потому что это не работает?

1 Ответ

1 голос
/ 27 ноября 2011

Если вы хотите иметь массив из одной строки, вы должны выделить память для одной строки:

string * array_of_strings;
array_of_strings = malloc(sizeof(string));

, а затем вы можете получить доступ к array_of_strings[0].

Если вы объявитеэто как string ** вы фактически объявляете указатель на указатель на string, а не указатель на string.

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