【问题标题】:Initializing arrays - Warning: assignment makes integer from pointer without a cast初始化数组 - 警告:赋值从没有强制转换的指针生成整数
【发布时间】:2013-05-28 19:14:56
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: c arrays pointers variable-assignment


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      将您的数组声明更改为:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-04
        • 2015-10-19
        • 2013-09-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多