Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.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 中止陷阱:6个错误_C - Fatal编程技术网

C 中止陷阱:6个错误

C 中止陷阱:6个错误,c,C,我有两个函数来移动类型p的字节和类型Q的其他字节: static const int vector_shift_Q_256[8] = {1,3,5,7,0,2,4,6}; static const int vector_shift_P_256[8] = {0,1,2,3,4,5,6,7}; void shiftBytes_Q_256(uint8_t block[8][8]) { uint8_t block_aux[8][8]; for(i = 0; i < 8; i++) {

我有两个函数来移动类型p的字节和类型Q的其他字节:

static const int vector_shift_Q_256[8] = {1,3,5,7,0,2,4,6};
static const int vector_shift_P_256[8] = {0,1,2,3,4,5,6,7};

void shiftBytes_Q_256(uint8_t block[8][8]) {
  uint8_t block_aux[8][8];

  for(i = 0; i < 8; i++) {
    for(j = 0; j < 8; j++) {
      if(j-(vector_shift_Q_256[i]) >= 0) 
            block_aux[i][j-(vector_shift_Q_256[i])] = block[i][j];
      else 
            block_aux[i][8+(j-(vector_shift_Q_256[i]))] = block[i][j];  
    }
  }
   memcpy(block,block_aux,L_256);
}  

void shiftBytes_P_256(uint8_t block[8][8]) {
  uint8_t block_aux[8][8];
  for(i = 0; i < 8; i++) {
    for(j = 0; j < 8; j++) {
        if(j-(vector_shift_P_256[i]) >= 0) 
            block_aux[i][j-(vector_shift_P_256[i])] = block[i][j];
        else 
            block_aux[i][8+(j-(vector_shift_P_256[i]))] = block[i][j];      
    }
  }
  memcpy(block,block_aux,L_256);
}
当我尝试为p和Q两种类型创建一个函数时,我得到一个错误中止陷阱:6:

void shiftBytes_P_Q_256(uint8_t block_P[8][8],uint8_t block_Q[8][8]) {
  uint8_t block_aux_P[8][8];
  uint8_t block_aux_Q[8][8];

  for(i = 0; i < 8; i++) {
    for(j = 0; j < 8; j++) {
        if(j-(vector_shift_P_256[i]) >= 0) {
            block_aux_P[i][j-(vector_shift_P_256[i])] = block_P[i][j];
        }if(j-(vector_shift_P_256[i]) < 0) {
            block_aux_P[i][8+(j-(vector_shift_P_256[i]))] = block_P[i][j];
        }   

        if(j-(vector_shift_Q_256[i]) >= 0) {
            block_aux_Q[i][j-(vector_shift_Q_256[i])] = block_Q[i][j];
        } if(j-(vector_shift_Q_256[i]) < 0) {
            block_aux_Q[i][8+(j-(vector_shift_Q_256[i]))] = block_Q[i][j];
        }
    }
  } 
  memcpy(block_P,block_aux_P,L_256);
  memcpy(block_Q,block_aux_Q,L_256);
}

我想知道此函数导致此错误的原因。

我没有看到I和j声明。它们被声明为全局变量与您的问题无关,但1为什么要使用全局变量作为循环变量?2.为什么不使用else,而不是单独的if条件?