考虑下面的程序,i、j和k在内存中存储在哪里?
null
int i; int main() { int j; int *k = ( int *) malloc ( sizeof ( int )); } |
(A) i、 j和*k存储在堆栈段中 (B) i和j存储在堆栈段中*k存储在堆上。 (C) i存储在数据段的BSS部分,j存储在堆栈段*k存储在堆上。 (D) j存储在数据段的BSS部分,i存储在堆栈段*k存储在堆上。 答复: (C) 说明: i是全局变量,未初始化,因此存储在数据段的BSS部分(http://en.wikipedia.org/wiki/.bss)
j在main()中是本地的,所以它存储在堆栈帧中(http://en.wikipedia.org/wiki/Call_stack)
*k是动态分配的,所以它存储在堆段上。
有关更多详细信息,请参阅下面的文章。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END