为了账号安全,请及时绑定邮箱和手机立即绑定

C++ new怎么用

C++ new怎么用

C++
小唯快跑啊 2018-07-29 17:21:18
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);这句时编译器跳出这个,请问是哪里错了


查看完整回答
反对 回复 2018-08-02
  • 1 回答
  • 0 关注
  • 755 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信