Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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复制到char的数组_C++_Copy_Char - Fatal编程技术网

C++ 如何将char复制到char的数组

C++ 如何将char复制到char的数组,c++,copy,char,C++,Copy,Char,我有: 我想这样做: char frame[4][8]; char szBuff[8] = ""; 但它不起作用: frame[i][j] = szBuff[0]; 确保i和j没有超出数组 例如: Access violation reading location 0xcccccccc. 不起作用 此代码: i = 5; j = 7; frame[i][j] = szBuff[0]; 工作正常。您读取的内容很可能超出了数组的范围。调试并确保i和j的增量不会超出您声明的数组的边界。确保:

我有:

我想这样做:

char frame[4][8];
char szBuff[8] = "";
但它不起作用:

frame[i][j] = szBuff[0];

确保i和j没有超出数组

例如:

Access violation reading location 0xcccccccc.
不起作用

此代码:

i = 5;
j = 7;
frame[i][j] = szBuff[0];

工作正常。

您读取的内容很可能超出了数组的范围。调试并确保i和j的增量不会超出您声明的数组的边界。确保:

i<4和i>=0

j<8和j>=0

有几种方法可以完成(我想)你想做的事情。以下是三点:

char frame[4][8];
char szBuff[8] = "1";
frame[1][1] = szBuff[0];
#包括
使用std::memcpy;
使用std::memset;
#包括
使用std::fill;
int main(){
字符帧[4][8];
char szBuff[8]=“”;
//方法1
对于(int i=0;i<4;++i){
对于(int j=0;j<8;++j){
帧[i][j]=szBuff[0];
}
}
//方法2
memset(&frame[0][0],szBuff[0],sizeof frame);
//方法3
//编辑:修复结束迭代器
填充(&frame[0][0],&frame[3][7]+1,szBuff[0]);
}

您需要发布整个循环(i和j递增)或任何代码写入的循环。您刚刚粘贴的代码没有本质上的错误。
#include <cstring>
using std::memcpy;
using std::memset;

#include <algorithm>
using std::fill;

int main() {
  char frame[4][8];
  char szBuff[8] = "";

  // Method 1
  for(int i = 0; i < 4; ++i) {
    for(int j = 0; j < 8; ++j) {
      frame[i][j] = szBuff[0];
    }
  }

  // Method 2
  memset(&frame[0][0], szBuff[0], sizeof frame);

  // Method 3
  // EDIT: Fix end iterator
  fill(&frame[0][0], &frame[3][7]+1, szBuff[0]);
}