LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

Когда у вас структура неизвестного размера с абы какими данными понять, где именно случилось проблема очень сложно, ведь она случается в РАНТАЙМЕ!

А это и без VLA можно делать. Например, частая тема:

struct s {
  size_t sz;
  char data[];
};

struct s* alloc_s(size_t sz) {
  struct s *s = malloc(sz + sizeof(struct s));
  if(s != nullptr)
    s->sz = sz;
  return s;
}

Такое уже лет 20 существует.

UPD:

Ага. Ну и как работает следующий код?

лол хайвмайнд! Отлично работает следующий код :DDD

Исходная версия hateyoufeel, :

Когда у вас структура неизвестного размера с абы какими данными понять, где именно случилось проблема очень сложно, ведь она случается в РАНТАЙМЕ!

А это и без VLA можно делать. Например, частая тема:

struct s {
  size_t sz;
  char data[];
};

struct s* alloc_s(size_t sz) {
  struct s *s = malloc(sz + sizeof(struct s));
  if(s != nullptr)
    s->sz = sz;
  return s;
}

Такое уже лет 20 существует.