1

我怎么放:

int32_t x = someValue;

进入我的 char 数组:

char * msg = new char[65546]();

任何帮助,将不胜感激!

4

3 回答 3

3

这完全取决于您要将值存储在数组中的方式。如果要逐字节存储,可以使用以下代码:

 int32_t x=someValue;
 char *ptr = (char*)&x;
 char *msg = new char[5];
 for(int i=0;i<4;++i, ++ptr)
    msg[i] = *ptr;

使用上述方法时应小心。因为有些系统使用 big-endian,而其他系统可能使用 little-endian。

另一方面,如果要逐位存储到char数组中,请使用以下命令:

 int32_t x=someValue;
 int digs[12], count=0;
 char *msg = new char[12];
 while(x>0)
 {
     digs[count++]=x%10;
     x/=10;
 }
 int i=0;
 while(count--)
 {
     msg[i++] = digs[count] +'0';
 }

无论哪种方式都有效。但最好选择第二个。因为它很容易转换回整数。

于 2013-09-18T16:51:39.900 回答
2

如果你想打印值,为什么不直接做呢?

std::cout << "x = " << x << '\n';
于 2013-09-18T16:51:42.713 回答
1
    char* msg = new char[123];
int32_t x = 123;
int offset = 0;
memcpy(msg + offset, reinterpret_cast<char*>(&x), sizeof(int32_t));
于 2013-09-18T16:48:37.857 回答