如何在C上设置unsigned char数组的值

per*_*ter 0 c string

我有一个大小为64的unsigned char数组,我想在运行时更改值,但是我的所有尝试都失败了,我做错了什么?

int main() {
  unsigned char buffer[64]={0xef,0xaa,0x03,0x05,0x05,0x06,0x07,0x08,......};
  buffer = {0x01,0x04,0xa0,0xb0,0xde,0x00,.....}; //fails

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

编辑:我不想填充零的数组缓冲区,我想放置一个新的值

小智 9

另一个解决方案是使用全能memcpy()和C99复合文字:

memcpy(array, (int []){ 0x00, 0x01, 0x02 }, sizeof array);
Run Code Online (Sandbox Code Playgroud)

信不信由你,这很有效.