哪些变量存储在(堆栈,堆,静态,代码)中?
我查找了很多帖子,但是我仍然对内存分配感到困惑。在这里,为了清晰起见,我写了几行示例代码。我想知道它们的区别。
#include <stdio.h>
int num = 5;
int func(int x) {
return x + 1;
}
int main() {
int *ptr = malloc(sizeof(int));
free(ptr);
return 0;
};
据我了解, 1)num是静态的 2)func是静态的 3)* ptr(不知道,也许是堆?) 4)ptr(不知道,也许是堆吗?) 5)x(不知道)
在上述情况下,在main()内部未调用func。然后,如果像这样在main()内部调用func()怎么办
int main() {
...
int res;
res = func(3);
...
};
在这种情况下,res和func存储在哪里?