我想将一个int数组转换为一个char数组,然后再返回,以便进行序列化.
它不需要跨平台工作.
我想出来了
//sample int array
int arr[] = {1,2,3,4,100};
char char_arr[sizeof(arr)];
//int arr to char arr
memcpy(char_arr, arr, sizeof(arr));
int newarr[sizeof(char_arr)/sizeof(int)];
//char arr back to int arr
memcpy(newarr, char_arr, sizeof(char_arr)/sizeof(int));
但这似乎不起作用(newarr包含与arr不同的值).有什么建议?
解决方法:
memcpy的第三个参数是字节数*,而不是元素数.所以你的第二次记忆电话是不正确的.
*技术上的字符数.