为什么编译和link都能过 但每次执行到show()的时候就终止了程序解决方法
为什么编译和link都能过 但每次执行到show()的时候就终止了程序
#include<iostream>
using namespace std;
/*int main()
{
char b=9+'0';
cout<<b<<endl;
return 0;
}*///数字转换为字符 只能是个位数
class convert
{
int b;
char *c;
public:
convert(int m)
{
b=m;
}
~convert()
{
delete []c;
}
void process()
{
int n=100;
int i=0;
int *pa=new int [n];
while(b%10!=0)
{
pa[i]=b%10;
b=b/10;
i++;
}
n=i;
char*c=new char[n+2];
for(i=0;i<n-i-1;i++)
{
int m;
m=pa[i];
pa[i]=pa[n-i-1];
pa[n-i-1]=m;
}
for(i=0;i<n;i++)
c[i]=pa[i]+'0';
c[n]='\0';
delete []pa;
}
void show()
{
cout<<c<<endl;
}
};
int main()
{
int a;
cin>>a;
convert wang(a);
wang.process();
wang.show();
return 0;
}
这是个把整数改成字符的程序
------解决方案--------------------
LZ怎么了?调用完SHOW程序就正常退出了啊
------解决方案--------------------
char*c=new char[n+2];
改为
c=new char[n+2];
前者新定义了一个c,后者使用class convert中的c,这样才能在show中正确显示c.
------解决方案--------------------
char*c=new char[n+2];多了char*定义
建议类中的C改为m_c,不容易出错
------解决方案--------------------
#include<iostream>
using namespace std;
/*int main()
{
char b=9+'0';
cout<<b<<endl;
return 0;
}*///数字转换为字符 只能是个位数
class convert
{
int b;
char *c;
public:
convert(int m)
{
b=m;
}
~convert()
{
delete []c;
}
void process()
{
int n=100;
int i=0;
int *pa=new int [n];
while(b%10!=0)
{
pa[i]=b%10;
b=b/10;
i++;
}
n=i;
char*c=new char[n+2];
for(i=0;i<n-i-1;i++)
{
int m;
m=pa[i];
pa[i]=pa[n-i-1];
pa[n-i-1]=m;
}
for(i=0;i<n;i++)
c[i]=pa[i]+'0';
c[n]='\0';
delete []pa;
}
void show()
{
cout<<c<<endl;
}
};
int main()
{
int a;
cin>>a;
convert wang(a);
wang.process();
wang.show();
return 0;
}
这是个把整数改成字符的程序
------解决方案--------------------
LZ怎么了?调用完SHOW程序就正常退出了啊
------解决方案--------------------
char*c=new char[n+2];
改为
c=new char[n+2];
前者新定义了一个c,后者使用class convert中的c,这样才能在show中正确显示c.
------解决方案--------------------
char*c=new char[n+2];多了char*定义
建议类中的C改为m_c,不容易出错
------解决方案--------------------