原意为将一个4位整形数组转化成4位十六进制字符串数组,在函数中使用指针来返回数组信息,结果显示访问权限冲突。
#include <iostream>;
#include <math.h>;
#include <string>;
using namespace std;
string dechex(int a)//将数字转成十六进制字符串
{
string b;
switch (a)
{
case 1:
b = "1";
return b;
break;
case 2:
b = "2";
return b;
break;
case 3:
b = "3";
return b;
break;
case 4:
b = "4";
return b;
break;
case 5:
b = "5";
return b;
break;
case 6:
b = "6";
return b;
break;
case 7:
b = "7";
return b;
break;
case 8:
b = "8";
return b;
break;
case 9:
b = "9";
return b;
break;
case 10:
b = "A";
return b;
break;
case 11:
b = "B";
return b;
break;
case 12:
b = "C";
return b;
break;
case 13:
b = "D";
return b;
break;
case 14:
b = "E";
return b;
break;
case 15:
b = "F";
return b;
break;
}
}
int *split(int a)//将数字按位数分成四组十六进制数,每组两位
{
int* Arraytest01 = new int[4];
for (int i = 0; i < 4; i++)
{
Arraytest01[i] = a / pow(16, 6 - 2 * i);
int temp = a - Arraytest01[i] * pow(16, 6 - 2 * i);
a = temp;
}
return Arraytest01;
}
string *coversion(int a[4]) //将数字组转成十六进制字符串组
{
string* Arraytest02 = new string[4];
for (int i = 0; i < 4; i++)
{
int b = a[i] / 16;
int c = a[i] % 16;
string d = " ";
d += dechex(b);
d += dechex(c);
Arraytest02[i] = d;
}
return Arraytest02;
}
int main()
{
int Array[4] = { 16,17,18,19 };
string* Array01 = coversion(Array);
for (int i = 0; i < 4; i++)
{
cout << Array01[i] << endl;
}
system("pause");
return 0;
}
#include <iostream>
#include <cmath>
#include <cstring>
using namespace std;
string dechex(int a)//将数字转成十六进制字符串
{
string b = "0";
switch (a)
{
case 1:
b = "1";
return b;
break;
case 2:
b = "2";
return b;
break;
case 3:
b = "3";
return b;
break;
case 4:
b = "4";
return b;
break;
case 5:
b = "5";
return b;
break;
case 6:
b = "6";
return b;
break;
case 7:
b = "7";
return b;
break;
case 8:
b = "8";
return b;
break;
case 9:
b = "9";
return b;
break;
case 10:
b = "A";
return b;
break;
case 11:
b = "B";
return b;
break;
case 12:
b = "C";
return b;
break;
case 13:
b = "D";
return b;
break;
case 14:
b = "E";
return b;
break;
case 15:
b = "F";
return b;
break;
}
return b;
}
int *split(int a)//将数字按位数分成四组十六进制数,每组两位
{
int* Arraytest01 = new int[4];
for (int i = 0; i < 4; i++)
{
Arraytest01[i] = a / pow(16, 6 - 2 * i);
int temp = a - Arraytest01[i] * pow(16, 6 - 2 * i);
a = temp;
}
return Arraytest01;
}
string *coversion(int a[4]) //将数字组转成十六进制字符串组
{
string* Arraytest02 = new string[4];
for (int i = 0; i < 4; i++)
{
int b = a[i] / 16;
int c = a[i] % 16;
string d = " ";
d += dechex(b);
d += dechex(c);
Arraytest02[i] = d;
}
return Arraytest02;
}
int main()
{
int Array[4] = { 16,17,18,19 };
string* Array01 = coversion(Array);
for (int i = 0; i < 4; i++)
{
cout << Array01[i] << endl;
}
system("pause");
return 0;
}
增加了一个返回值,感谢