gpt4 book ai didi

c++ - 将 Char 数组的元素复制为 Short

转载 作者:行者123 更新时间:2023-11-30 21:30:35 25 4
gpt4 key购买 nike

将 char 数组元素复制为 Short 的最佳方法是什么?

假设我们有 -

char arr[5] = {'1','2','3','4','5'};
unsigned short *value = 0;

1) *value = (无符号短*) arr[4];

2) *value = *((无符号短*) ((void *) &arr[4]));

3) 获取临时变量 -

unsigned short temp;
memcpy( &temp, &arr[4], sizeof( temp) );
*value = temp;`

此外,第二个选项会给出段错误。

最佳答案

2 和 3 将从数组中复制 2 个字节,这将导致您从 char 数组末尾的未知内存进行复制。

在 1 中,您将指针从一个值转换到未知区域。

你应该这样做:

*value = (无符号短整型) arr[4];

即:将 char 值转换为无符号短整型,然后将其复制到值指向的任何位置(希望它是有效的指针)

编辑:你的指针的值为 0...所以它应该是:

unsigned short value = (unsigned short) arr[4];

关于c++ - 将 Char 数组的元素复制为 Short,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25261858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com