【问题标题】:Error: ordered comparison between pointer and integer ('int' and 'int **')错误:指针和整数之间的有序比较('int' 和 'int **')
【发布时间】:2020-02-07 09:29:21
【问题描述】:

ft_ultimate_range.c:14:13: 错误:指针和整数之间的有序比较('int' 和 'int **')[-Werror]

"while (min

#include <stdio.h>
#include <stdlib.h>

int ft_ultimate_range(int **range, int min, int max)
{
    int size;
    int i;

    size = max - min;
    if (min >= max)
        return (0);
    *range = (int*)malloc(sizeof(int) * size);
    i = 0;
    while (min < range)
    {
        range[0][i] = min;
        i++;
        min++;
    }
    return (size);
}

int main()
{
    int one = 2;
    int two = 6;
    int number = 3;
    int *pt1 = &number;
    int **pt2 = &pt1;


    printf("%i\n", ft_ultimate_range(pt2, one, two));
    return (0);
}

什么是错误?

【问题讨论】:

  • 你希望while (min &lt; range)做什么?
  • 试试while (min &lt; range) --> while (min &lt; max)
  • @chux 谢谢!!跑!!

标签: c pointers while-loop return malloc


【解决方案1】:

如果 range 是 2d 数组,则您将 int(min) 与整个 2d 数组 int**(range) 进行比较,这是无效的。

//while (min < range) //min is integer, range is 2d array. comparison is invalid. 
while (min < range[i][0]) //compare with value of 2darray instead

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2014-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多