for(int i=0;i<=9;i++){char a[38],b[13],c[13];for(int j=0;j<=37;j++)infile>>a[j];infile.seekg(1,ios::cur);for(int j=0;j<=13;j++)infile>>b[j];infile.seekg(61,ios::cur);for(int j=0;j<=13;j++)infile>>c[j];infile.seekg(89,ios::cur);p[i]=new genesequence(a,b,c);}new能不能这样用啊,在调试的时候为什么当执行第二次循环是程序就崩了编译器是VS2012
1 回答
PIPIONE
TA贡献1829条经验 获得超9个赞
负责分配一个动态的内存空间 —— 在程序运行时分配,而不是编译前分配。
int *a = new int; //分配一个int型数据的存储空间。没有变量名,用指针
//a来调用。int可以换成其他类型。
...
delete a; //调用结束后,记住用delete删掉分配的空间,以免内存泄
//露。
如果是分配的动态数组的话,则用另一组new和delete。
int *p[10] = new int[10];
...
delete[];
记住new和delete是成对的,new[]和delete[]也是如此,否则会出现错误。
追问
您说的我知道我的new和delete都是成对的上面只是部分代码,我的意思是在调试时for循环中i=0时程序正常,i=1时执行到p[i]=new genesequence(a,b,c);这句时编译器跳出这个,请问是哪里错了
- 1 回答
- 0 关注
- 755 浏览
添加回答
举报
0/150
提交
取消