如何在for循环中获得3次数组?

时间:2016-12-23 12:24:10

标签: c for-loop

我不熟悉c/c++,但是当我尝试实现for loop语句时,我遇到以下错误:

  

错误C2296:'*':非法,左操作数的类型为'unsigned char *'

unsigned char *_Orgin_Pixel_;
unsigned char *_Copy_Pixel_;
....

for (unsigned int i = 0; i < Picture_x_ * Picture_y_; i++)
{
    *(_Copy_Pixel_*3 + i) = _Orgin_Pixel_[i];
}

如何解决该问题?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。如下所示,

for (unsigned int i = 0; i < Picture_x_ * Picture_y_; i++)
{
    *(_Copy_Pixel_ + i * 3 + 0) = _Orgin_Pixel_[i];
    *(_Copy_Pixel_ + i * 3 + 1) = _Orgin_Pixel_[i];
    *(_Copy_Pixel_ + i * 3 + 2) = _Orgin_Pixel_[i];
}

如果我想分成2级联,为什么它们不同呢?

for (unsigned int i = 0; i < Picture_y_ ; i++)
    for (unsigned int j = 0; j < Picture_x_ ; j++)
{
    _Copy_Pixel_[(i*Picture_y_  + j *3+ 0)] = _Orgin_Pixel_[i*Picture_y_ + j];//B
    _Copy_Pixel_[(i*Picture_y_  + j*3 + 1)] = _Orgin_Pixel_[i*Picture_y_ + j];//G
    _Copy_Pixel_[(i*Picture_y_  + j*3 + 2)] = _Orgin_Pixel_[i*Picture_y_ + j];//R
}

我无法理解,我错过了什么吗?