我的主管在我的C代码中看到的内容类似于:
size = f(some parameters);
int array[size];
Run Code Online (Sandbox Code Playgroud)
他说最好分配这样的数组malloc.他的描述是这样的:
将它分配到堆栈上需要您的堆栈在程序的整个运行时间内保持有效.
我不知道他的意思是什么,所以这就像我记得在会议结束时他的措辞一样,不知道实际意义.他的意思是什么?(或者,也许有人可以解释不以这种方式声明数组的另一个原因).
声明为local的任何变量仅在函数执行期间有效,因为它将在堆栈中分配
如果你需要在声明它的函数之外使用这个数组,你需要用malloc分配它,但是如果你只在这个函数里面使用它,那么在执行期间是可以的
请记住,任何局部变量都将使用堆栈内存,因此请确保您的阵列永远不会大到足以导致程序中的堆栈溢出!