[英]How to malloc a char[] properly without memory leaks
如何修復此行以使用我的代碼。 我知道在 C99 中允許使用可變長度數組,但我需要使用 malloc 來修復這一行。 我將如何去做。 char stack[strlen(input)];
(順便說一下,我沒有使用 C99)
將stack
聲明為指針並使用malloc
。
char *stack = malloc(strlen(input));
不要忘記free
內存。
請允許我補充一點,建議始終檢查您剛剛使用 malloc 分配的指針的值。
你可以這樣做:
char *stack = malloc(strlen(input));
if (stack == NULL) {
return -1;
}
可以修改return -1;
根據您使用這部分代碼的位置,隨心所欲。 -1 是某些人在發生錯誤時通常返回的內容。
為什么要這樣做?
例如,在 RAM 已滿的情況下, malloc()
函數可能無法分配內存空間。 這並不經常發生,但為了代碼的正確性,必須抓住它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.