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