问题描述
- 关于动态存储与静态存储的区别
- 什么时候要用到动态存储呢?它在用的时候还要指定大小,和静态分配区别在哪呢?
解决方案
运行的时候若由用户指定了一个大小n,程序接下来就可以这样分配int *arr = (int *) malloc ( sizeof(int) * n );
解决方案二:
编译的时候无法确定大小的,只能用动态存储。
另外,程序中可能使用,也可能不使用的存储,用动态存储可以提高性能。
解决方案三:
我是说编译时无法确定大小。而不是说无法确定大小。
malloc中指定变量,而变量来自用户的输入,这种情况编译的时候就没法确定大小。
解决方案四:
动态分配是运行时,比如程序运行的时候,用户输入一个值,程序根据输入的值分配对应大小的空间。而静态分配是程序编译的时候就指定了大小。
解决方案五:
你的数组定义多大呢?
C不允许你写
int arr[n]; //如果n是变量
解决方案六:
http://blog.csdn.net/evankaka/article/details/44457765
栈,堆,全局,文字常量,代码区总结
解决方案七:
http://codepad.org/1Ko6dHSj
In function 'int main()':
Line 3: error: ISO C++ forbids variable-size array 'a'
compilation terminated due to -Wfatal-errors.
你的代码没法编译的。
时间: 2024-11-05 17:21:40