在块作用域中使用静态关键字与使用malloc相比有什么优势?
例如:
函数 A:
例如:
函数 A:
f() {
static int x = 7;
}
函数 B:
f() {
int *x = malloc(sizeof(int));
if (x != NULL)
*x = 7;
}
如果我理解正确的话,这两个程序都创建了一个存储在堆上的整数7。在A中,变量是在主方法执行之前在某些永久存储中创建的。在B中,您在调用函数时即时分配内存,然后将7存储在指针所指向的位置。在什么情况下会使用其中一种方法?我知道你不能在函数A中释放x,那么B是否更可取?