-1

我已经在几个线程中搜索了正确的答案,但是我在任何地方都找不到确切的问题:在我的程序中,我创建了一个数组,我想在循环中填充某些日期. 问题在于作业——因为我真的不知道如何描述它(我完全没有使用 C 编程的经验),我将发布一些代码:

int *array[] = malloc (w*h*sizeof(int));

数组[i] = (SDL_MapRGB(fmt, red, green, blue));

所以第一行创建了我的数组,在第二行中,我实际上想将函数“SDL_MapRGB”的结果(一个整数)写在这个数组的第 i 个位置。(因为这是循环的一部分,所以在它的最后,如果它有效,我会填充整个数组。)

这是我得到的错误:错误:赋值使指针从整数而不进行强制转换 [-Werror]

有人知道我该如何解决吗?我仍然(在阅读旧线程之后)不明白这意味着什么。我将非常感谢任何帮助:)

4

2 回答 2

0

因为你的声明是错误的。int *array[]是一个指针数组。由于您使用一维数组,您所要做的就是int *array,即删除括号。

于 2013-05-28T19:17:42.647 回答
0

array[i]是一个指针,而函数SDL_MapRGB()返回一个整数,这是警告的原因。

将您的数组声明更改为:

int *array = malloc (w*h*sizeof(int));
于 2013-05-28T19:17:44.370 回答