如何修復此行以使用我的代碼。我知道在 C99 中允許使用可變長度陣列,但我需要使用 malloc 來修復這一行。我將如何去做。char stack[strlen(input)];(順便說一下,我沒有使用 C99)
uj5u.com熱心網友回復:
宣告stack為指標并使用malloc.
char *stack = malloc(strlen(input));
不要忘記free記憶。
uj5u.com熱心網友回復:
請允許我補充一點,建議始終檢查您剛剛使用 malloc 分配的指標的值。
你可以這樣做:
char *stack = malloc(strlen(input));
if (stack == NULL) {
return -1;
}
您可以return -1;根據您使用這部分代碼的位置,使用您想要的任何內容進行修改。-1 是某些人在發生錯誤時通常回傳的內容。
為什么要這樣做?
malloc()例如,在 RAM 已滿的情況下,該函式可能無法分配記憶體空間。這并不經常發生,但為了代碼的正確性,必須抓住它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/315986.html
