【发布时间】:2020-03-07 18:17:44
【问题描述】:
假设我有一个 char 指针,我想把它放入一个 16 个字符的 char 数组中(即使 char 指针的 strlen() 大于那个,然后截断),很简单,我只是这样做:
char* pointer = <insert whatever here>;
unsigned char myArray[16];
memcpy(myArray, pointer, 16);
现在,我想将 char 数组放入一个 16 字节的 u_int32_t 数组中。
这是我正在尝试的:
u_int32_t newArray[4];
memcpy(newArray, myArray, 16);
这似乎并没有按照我想要的方式复制字节。我在这里错过了一些基本的 C 步骤吗?
我应该以不同的方式将 char 数组放入 u_int32_t 数组中吗?
【问题讨论】:
-
memcpy不关心您正在复制的内容的类型。您需要一个循环,复制每个元素,并可能在分配之前将其转换或转换为适当的类型。 -
请描述使您认为“这似乎不是按照我想要的方式复制字节的观察结果。”
-
您可能在这里遇到字节序问题。
-
@TarekDakhran 可能,让我们等待 OP 的一些细节。
-
约翰,关于是否存在诸如“问题noobishness”之类的完全切线的哲学话题:我们不能容忍它!我们消灭它Muhahahaha。不是。我希望你看到我们通过帮助你改进你的问题来防止它。还不错,也有点意思。只需提供更多信息和细节。然后它可能会提出重复的建议。这意味着它一点也不差,只是已经类似地问过了。所以,不要害怕。只需与我们合作。我们想提供帮助。如果我们认为有必要,我们只会解释规则。
标签: c