【发布时间】:2019-03-25 05:58:55
【问题描述】:
我想创建一个为指针(从 main)分配空间以指向的函数。如果在函数中分配了内存,那么在该函数返回后,该内存是否仍然可用并且可以安全使用?下面是代码示例:
int foo(int **number)
{
*number = (int*)malloc(sizeof(int));
}
int main()
{
int *myVar;
foo(&myVar);
}
所以我们看到内存是在foo()函数的执行过程中分配的。
myVar 变量的内存是分配在foo() 函数的“空间”还是main() 的“空间”?
在完成foo() 的执行后,它的内存正在被清除。 myVar 会指向同一个“空间”吗?使用会安全吗?
它会被其他函数或变量声明覆盖吗?
【问题讨论】:
-
“为指针分配空间”,你的代码为
int分配空间,而不是for指针。尽管如此,它还是将分配的内存地址(对于int)分配给一个指针。在这种情况下,准确的措辞至关重要。
标签: c function pointers memory