История изменений
Исправление 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 существует.