这是来自求职面试。
#include <stdio.h>
#include <stdlib.h>
void func(int* x)
{
x =(int*)malloc(sizeof(int));
*x = 17;
}
void main() {
int y = 42;
func(&y);
printf("%d", y);
}
问题是将要打印什么,这里有什么问题。
我看到一个声称x是局部变量的解决方案,因此将打印42并且问题是内存泄漏。但我不这么认为,因为我传递了y的地址。在我看来,使用int作为指针(其中一个是4个字节,另一个是8个字节)实际上是问题。 你能就此提出自己的看法吗?
由于