使用新关键字崩溃分配动态数组

时间:2014-08-21 15:15:29

标签: c++ pointers

我使用 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;
}

1 个答案:

答案 0 :(得分:4)

pTab=new int(n);应为pTab=new int[n];

前者分配一个int并用n初始化它。后者分配一个n int&#39;但不初始化它们。

还有*(pTab+i)的快捷语法:pTab[i]i[pTab]