在我的代码中,几乎每个函数都有一个或多个malloc调用,每次我都需要做类似以下的事情:
char *ptr = (char *)malloc(sizeof(char) * some_int);
if (ptr == NULL) {
fprintf(stderr, "failed to allocate memory.\n");
return -1;
}
这将增加四行代码,如果我每次使用malloc后都要添加它们,我的代码长度将大大增加..所以有没有一种优雅的方法来解决这个问题呢?
非常感谢!
malloc
。这可能表明你试图将其他语言的习惯用法翻译成 C 语言,而不是正确地使用 C 语言... - R.. GitHub STOP HELPING ICEmalloc
的返回值强制转换类型,这样做可能会掩盖编译器本来可以发现的错误。 - pmg(char *)
对吧?这种方法可以遮盖哪些错误? - cokedude<stdlib.h>
,就会发生错误隐藏,从而在没有原型的情况下使用函数。编译器(错误地)假定malloc()
返回类型为int
的值,并且没有强制转换时,在赋值时会因为int*
和int
不兼容而报错。通过强制转换,您可以迫使编译器保持沉默...隐藏正确的#include
遗漏。 - pmg