#define DEFAULT_SIZE 100
struct my_struct {
struct some_struct *ptr;
size_t len;
char buf[0];
};
struct my_struct *s;
s = malloc(sizeof *s + DEFAULT_SIZE);
...
Теперь, если я хочу расширить память buf
. Нужно ли мне воссоздавать struct my_struct *
с вызовом realloc()
? Разве я не могу просто перераспределить память, занимаемую buf
, например:
realloc(s->buf, 2* DEFAULT_SIZE);