比方說,我有一個數組在C:展開的非指針數組
char *list[3] = {"Hello", "world", "!"};
我想展開。如果我daclare該數組爲:
char **list = (char **) malloc(3 * sizeof(char *)); // Or sth. like that...
我可以調整它的大小:
realloc(list, 5 * sizeof(char *)); // Not sure now if I should use `char *` or `char **`
如果我試試這個:
char *list[3] = {"Hello", "world", "!"};
realloc(list, 5 * sizeof(char *)); // Not sure now if I should use `char *` or `char **`
它說,它不能調整內存WASN」分配。
好吧,但我怎麼能然後調整這樣的數組?
您正在使用'sizeof(char *)'。更好更安全的方法是使用'sizeof * list'代替。 –
這很簡單:要麼你有一個已知大小的數組,要麼你有一個未知大小的數組。您不能同時擁有已知和未知大小的數組。 – Lundin