Я хочу, чтобы определить структуру строки фиксированной длины, например:массив фиксированной длины typedef -> авторасширенный размер?
typedef char str8[8];
так что я могу создать массивы фиксированной строки длиной как:
str8 * mydata;
mydata = malloc(100 * sizeof(str8));
Я использую MyData для хранения список имен: Петр Waseels Сердитый Lexiunos Бета ...
Все работает отлично до mydata [3], который становится LexiunosBeta вместо Lexiunos. mydata [4], однако, все еще является бета-версией.
Это похоже на то, что размер (имя)> = размер (str8). Я расширяю str8 до str10 как временное решение, но я действительно хочу знать, какова реальная проблема и как я могу ее исправить.
Если я изменил typedef char str8 [8] на более надежное определение типа: typedef {char * x;} str8; решает ли проблема?
Спасибо всем очень!
вне диапазона доступа массивов будет вызывать * неопределенное поведение *. – MikeCAT