我想定義固定長度串的結構,如下所示:typedef固定長度數組 - >自動擴展大小?
typedef char str8[8];
所以我可以創建固定長度字符串的陣列等:
str8 * mydata;
mydata = malloc(100 * sizeof(str8));
我使用MYDATA爲存儲名單: 彼得 Waseels 脾氣暴躁 Lexiunos 貝塔 ...
一切正常,直到mydata [3],它變成LexiunosBeta而不是Lexiunos。然而,mydata [4]仍然只是測試版。
這似乎只發生在size(name)> = size(str8)時。我將str8作爲臨時解決方案擴展到str10,但我真的想知道真正的問題是什麼以及我如何解決它。
如果我將typedef char str8 [8]更改爲更強大的定義,如: typedef {char * x;} str8;它會解決問題嗎?
非常感謝大家!
超出範圍的陣列將調用*未定義行爲*的訪問。 – MikeCAT