我使用 pTab = new int(n)创建名为 * pTab 的动态数组以包含 n = 10个元素,并且我的程序崩溃< em>(抱歉不共享错误信息)
#include <iostream>
using namespace std;
int main(){
int main(){
int *pTab;
int n=10;
pTab=new int(n); //SHOULD BE pTab=new int[n]; !!!
for(int i=0;i<=n-1;i++){
*(pTab+i)=13;
}
for(int i=0;i<=n-1;i++){
cout << *(pTab+i);
}
delete[] pTab;
return 0;
}
答案 0 :(得分:4)
pTab=new int(n);
应为pTab=new int[n];
前者分配一个int并用n
初始化它。后者分配一个n
int&#39;但不初始化它们。
还有*(pTab+i)
的快捷语法:pTab[i]
或i[pTab]
。