关于new和delete,程序编译没问题,运行时报错

C++语言 码拜 8年前 (2016-09-23) 1730次浏览
int main(){
int n;
while(cin>>n){
char *p=new char;
_itoa(n,p,2);
string s(p);
cout<<s<<endl;
delete p;
}
}
关于new和delete,程序编译没问题,运行时报错
解决方案

5

崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止

10

_itoa C语言函数,作用为将整形转换为字符串 int–>char*。你的p申请的空间太少了

50

分配的堆内存使用时越界了,导致堆空间破坏,释放时出错
用new[]   delete[]分配足够大小的空间

5

看一下string中能否自定义插入器,覆盖<<操作符,不行就另定义一个类专门覆盖<<操作符来输出二进制。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于new和delete,程序编译没问题,运行时报错
喜欢 (0)
[1034331897@qq.com]
分享 (0)