簡體   English   中英

如何在沒有內存泄漏的情況下正確分配 char[]

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM