计算机等级查询网站:一小段C++程序,在linux/windows下运行结果不同,帮忙看一下

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/05 00:09:05
//用的都是很基本的东西 在linux/windows下编译通过后运行结果就是不同 不明白 待高手点拨

//正确应该为:输入 1101011011 10011 输出:11010110111110 10011 linux结果正确 windows下不正确

#include <string>
#include <iostream>
#include <fstream>

using namespace std;

char * crc(char * a, char * b)
{
int la;
int lb = strlen(b);
int i,j;
char * c = new char;
char * d = new char;
char * result = new char;

strcpy(result,a);

for(i=0;i<lb-1;i++)
{
strcat(result,"0");
strcat(a,"0");
strcat(d,"0");
}
strcat(d,"0");

la=strlen(a);

for(i=lb-1;i<la;i++)
{
if (a[i-lb+1]=='0')
{
strcpy(c,d);
}
else
{
strcpy(c,b);
}

for(j=0;j<lb;j++)
{
if (a[i-lb+1+j]==c[j])
{
a[i+1-lb+j]='0';
}
else
{
a[i+1-lb+j]='1';
}
}
}

for(i=0;i<la-1;i++)
{
if (a[i]==result[i])
{
result[i]='0';
}
else
{
result[i]='1';
}
}

return result;
}

int main()
{
char * a = new char;
char * b = new char;

cin>>a>>b;
cout<<crc(a,b)<<endl;
cout<<b<<endl;

return 0;
}
谁能解释一下原因呢。。。

c++不是跨平台语言,在不同操作系统下结果不同不奇怪

唉!
又来了!