两个unsigned char *值之间的指针强制转换警告

时间:2010-12-10 16:46:52

标签: c warnings

我收到此警告,警告:赋值使用整数而不是强制转换,关于下一个代码,我无法理解为什么。

unsigned char *dataBitmap = [self bitmapFromImage:image];
unsigned char *dataArray[(int)image.size.height][(int)image.size.width * 4];

for (int i = 0; i < image.size.width * image.size.height * 4; i += 4) {

    int aux = (int) i / 4;
    int row = (int)(aux / image.size.width);
    int column = i % ((int)image.size.width * 4);

    // Alpha.
    dataArray[row][column] = dataBitmap[i];
    // Red.
    dataArray[row][column + 1] = dataBitmap[i + 1];
    // Green.
    dataArray[row][column + 2] = dataBitmap[i + 2];
    // Blue.
    dataArray[row][column + 3] = dataBitmap[i + 3];
}

感谢阅读。

1 个答案:

答案 0 :(得分:0)

unsigned char *dataArray[(int)image.size.height][(int)image.size.width * 4];

应该是

unsigned char dataArray[(int)image.size.height][(int)image.size.width * 4];

阅读错误消息,并思考!它表示你以某种方式从一个整数(或类似的东西)制作一个指针。这意味着你使用了一个指针,你应该使用一个整数,或者反过来。从头到尾阅读代码,使用指针和整数。