|
//函数功能 根据 INbbb的值 返回 字符串OUTccc 数值OUTddd 及字符个数OUTaaa 的值
int OUTaaa(int INbbb, char* OUTccc, int* OUTddd)
{
if (INbbb=0)
{
*OUTddd=0;
OUTccc = "00001111";
}
else if (INbbb = 1)
{
*OUTddd=1;
OUTccc = "1111000011110000";
}
else
{
}
return strlen(OUTccc);// 返回字符的长度
}
int main()
{
int aa = 0, bb = 1;
int *dd = 0;
char* cc= "1010";
OUTaaa(bb, cc, dd);// 调用函数
cout << aa << endl;
cout << cc << endl;
cout << dd << endl;
return 0;
}
一般“==”是警告,一般不会出错,只是阅读上有难度,规范上是需要用“==”的,这里主要问题在于你对字符数组理解有偏差,还有简单的方式能不要用指针就不要用指针,新手理解难度较高,其实字符数组你直接传递字符定义的值,就是将第一个指针传递进函数中了,我修改了,你自己在琢磨吧
int OUTaaa(int INbbb, char* OUTccc, int* OUTddd)
{
if (INbbb==0)
{
*OUTddd=0;
//OUTccc = "00001111";
strcpy(OUTccc,"00001111");
}
else if (INbbb == 1)
{
*OUTddd=1;
//OUTccc = "1111000011110000";
strcpy(OUTccc,"1111000011110000");
}
else
{
}
return strlen(OUTccc);// 返回字符的长度
}
int main()
{
int aa = 0, bb = 1;
int dd = 0;
char cc[17]= "2222";
OUTaaa(bb, cc, &dd);// 调用函数
cout << aa << endl;
cout << cc << endl;
cout << dd << endl;
system("pause");
return 0;
}
其实我的字符拷贝也是会碰到溢出的,我看你最多"1111000011110000"只有16位,就直接定义了一个17位的字符数组,想要安全,最好再研究一下安全赋值函数
|
上一篇: 使用delete释放内存报错下一篇: 函数 执行没有反应
|