Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将char*复制到16字节的数组_C++ - Fatal编程技术网

C++ 如何将char*复制到16字节的数组

C++ 如何将char*复制到16字节的数组,c++,C++,如何将char*复制到16字节的数组 const char *SK = "1234456789999978"; sample_aes_gcm_128bit_key_t alice[16]; memcpy(alice, (sample_aes_gcm_128bit_key_t*)SK, 16); //gives error 样本的定义\u aes\u gcm\u 128位\u密钥\u t typedef uint8_t sample_aes_gcm_128位_key_t[16] 错误: 错误:

如何将char*复制到16字节的数组

const char *SK = "1234456789999978";
sample_aes_gcm_128bit_key_t alice[16];

memcpy(alice, (sample_aes_gcm_128bit_key_t*)SK, 16); //gives error
样本的定义\u aes\u gcm\u 128位\u密钥\u t

typedef uint8_t sample_aes_gcm_128位_key_t[16]

错误: 错误:在“(”标记之前需要构造函数、析构函数或类型转换 memcpy(alice,(样本aes gcm 128位密钥t*)SK,16);

这对我很有用:

#include <iostream>
#include <cstring>

int main()
{
    typedef int sgx_aes_gcm_128bit_key_t;
    const char *SK = "1234456789999978";
    sgx_aes_gcm_128bit_key_t alice[16];
    std::copy(SK, SK + strlen(SK), alice);
    for(auto& i : alice){
        std::cout << i - '0';
    }
    return 0;
}
#包括
#包括
int main()
{
typedef int sgx_aes_gcm_128位密钥;
const char*SK=“12344567899978”;
sgx_aes_gcm_128位密钥[16];
复制(SK,SK+strlen(SK),alice);
用于(自动和i:alice){

STD::CUT< P>如果你想用C++来使用MeMCPY,那么完全可以。在McCPy里面,你应该使用强制转换> <强>(空虚*)<强> < /P>
确保类型和大小正确,以防止分段错误。

1)什么错误?2)为什么在C++中,C++中的代码“>代码> SK<代码>?它给出了什么错误?它应该没有任何强制转换。为什么你的TyPulf不同于你使用的东西?看起来你在使用C++编译器。我也觉得这个代码在一个功能块之外。PoST。它编译C++ 11和U上的“好”。P(我已经取出了不必要的和不相关的演员)。这是错误的(<代码>爱丽丝<代码>是数组的数组,我确信你不是那个意思),但是编译。程序是C++程序。那你为什么要标记它[C]?你应该标记C++而不是C,在那个例子中,CorrectedAnnabelle,我想你是指<代码> TyPuf****GXXAESGGGMY128BITYKEYTYT/<代码>,并且那个代码> Prtff<代码>需要终止<代码> NUL。不需要<代码> Value>代码>:它可能与IDE有关。无论如何,如果它是这样工作的,这个问题就不需要F了。或者答案。当编译器给出错误时,一个cast会修复它。对于那些后来无意中发现并且还不知道这一点的人,C样式cast也可以用来欺骗编译器,告诉它方钉适合圆孔,从而在以后导致逻辑错误。应该非常谨慎地查看它,并且只有在知道自己是正确的情况下才使用所有其他的选择都已经用尽了。换句话说,几乎从来没有。是的。当正确理解使用它时,它也是一个很好的特性
memcpy((void*)alice, (void*)SK, 16);