将int数组转换为char数组并通过c中的memcpy返回

我想将一个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的第三个参数是字节数*,而不是元素数.所以你的第二次记忆电话是不正确的.

 *技术上的字符数.

上一篇:c – 为什么我不能在memcpy中使用const参数?


下一篇:视频流媒体播放器EasyPlayer.js截取base64编码快照显示不完整问题解决