问题描述
我是 C++ 编程新手,我了解到所有静态变量都是在编译时在堆栈内存上分配的,因此在编译器编译之前应该知道它们的大小。
但是动态变量是在非常大的堆内存上分配的,编译器不需要事先知道大小
所以我尝试了 static 和 dynamic 声明数组,并在运行时指定它们的大小 但程序运行良好。
那么,除了事实上一个在堆上之外,它们之间有什么区别?就像两者都是数组的大小仅为 n
#include<bits/stdc++.h>
using namespace std;
main(){
int n;
cin>>n;
int arr1[n];
int *arr2 = new int[n];
for(int i=0; i<n; ++i){
arr1[i] = i;
arr2[i] = i;
}
for(int i=0; i<n; ++i){
cout<<arr1[i]<<" "<<arr2[i]<<endl;
}
}
输入:1000
输出:
0 0
1 1
2 2
3 3
.
.
.
.
(so on till)
999 999
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)