Если вы получаете сбой конкретно на
size_t len = sizeof(dastruct) / sizeof(struct my_struct);
строка, это может быть вызвано sizeof(struct my_struct)
оценкой до 0. (Т.е. проблема на самом деле в делении на ноль). Это может произойти в некоторых компиляторах, когда тип struct my_struct
является неполным, т.е. он не определен. Использование неполного типа в sizeof
недопустимо в C, но некоторые компиляторы по какой-то причине допускают это, оценивая его как 0. (Хотя я ожидаю, что компилятор перехватит это деление на 0 во время компиляции.)
Ваш код явно фальшивый и не иллюстрирует проблему. Если приведенная выше теория верна, скорее всего, в вашем реальном коде вы либо неправильно набрали имя типа struct my_struct
в sizeof
, либо забыли включить определение типа struct my_struct
.
(Маловероятно, но в любом случае ...)