我正在研究C并且我有一个问题..我正在用Mcrypt编写程序,而解密函数需要在char *指针处使用chipertext。
问题是chipertext充满了未知的ASCII符号..
所以我用%d
打印了chipertext,我得到了像这样的数字的chipertext ..
23 -83 -48 -36 -49 -26 -16 -42 101 111 127 -46 -10 -3 -33 110 -106 29 -112 123 -21 43 50 81 70 -101 -71 94 -63 -122 52 76
我的问题是..我把这个chipertext存储到int array[32]
..
如何将此int数组的内容复制到我的char *指针?
答案 0 :(得分:0)
我认为最简单的解决方案是将您的密文存储在 char array [32] 中。
答案 1 :(得分:0)
如何将int
数组复制到char
数组:
int iarray[32];
char carray[sizeof(iarray)];
memcpy(carray, iarray, sizeof(iarray));
如果carray
是指针而不是数组,则代码基本保持不变:
int iarray[32];
char *carray = addressOfSomeMemory;
memcpy(carray, iarray, sizeof(iarray));
但是,上面的代码假设您的数据存储为char
打包到int
s。相反,如果您的数据每char
个int
存储一次,则需要更多代码:
for (int i = 0; i < 32; i++)
*(carray+i) = (char)iarray[i];