首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >警告:从不兼容的指针类型传递‘type_specifier’的参数2

警告:从不兼容的指针类型传递‘type_specifier’的参数2
EN

Stack Overflow用户
提问于 2015-10-10 10:46:52
回答 1查看 2.4K关注 0票数 0

谁能解释一下这些错误吗?我没有多维数组,所以我不明白我是如何得到这个错误的。

代码语言:javascript
复制
main.c:291: warning: passing argument 2 of ‘type_specifier’ from incompatible pointer type
main.c:263: note: expected ‘int *’ but argument is of type ‘int **’
main.c:291: warning: passing argument 3 of ‘type_specifier’ from incompatible pointer type

这是我的密码。我从main调用program(),然后尝试从program()调用declaration_list()。

代码语言:javascript
复制
void declaration_list(char *strings_line_tokens[], int *big_boy_counter, int *lower_bound_of_big_boy_counter)
{
    int cmp_str1 = 0;
    int cmp_str2 = 0;
    int cmp_str3 = 0;
    printf("declaration_list().\n");
    cmp_str1 = strcmp("int", strings_line_tokens[*lower_bound_of_big_boy_counter]);
    cmp_str2 = strcmp("float", strings_line_tokens[*lower_bound_of_big_boy_counter]);
    cmp_str3 = strcmp("void", strings_line_tokens[*lower_bound_of_big_boy_counter]);
    if(cmp_str1 == 0 || cmp_str2 == 0 || cmp_str3 == 0)
    {
        declaration(strings_line_tokens, &big_boy_counter, &lower_bound_of_big_boy_counter);
    }
    //declaration_prime();
    //declaration_list();
}

void program(char *strings_line_tokens[], int *big_boy_counter, int *lower_bound_of_big_boy_counter)
{
    int cmp_str1 = 0;
    int cmp_str2 = 0;
    int cmp_str3 = 0;
    printf("In program().\n");
    cmp_str1 = strcmp("int", strings_line_tokens[*lower_bound_of_big_boy_counter]);
    cmp_str2 = strcmp("float", strings_line_tokens[*lower_bound_of_big_boy_counter]);
    cmp_str3 = strcmp("void", strings_line_tokens[*lower_bound_of_big_boy_counter]);
    if(cmp_str1 == 0 || cmp_str2 == 0 || cmp_str3 == 0)
    {
        declaration_list(strings_line_tokens, &big_boy_counter, &lower_bound_of_big_boy_counter);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-10 10:49:21

代码语言:javascript
复制
declaration_list(strings_line_tokens, &big_boy_counter, &lower_bound_of_big_boy_counter);

在这个big_boy_counter中已经是一个int *,但是您传递它的地址。但是函数需要一个int *

还有第三个参数,您需要传递int *,但lower_bound_of_big_boy_counter也是int *,您传递它的地址。

在函数调用中把big_boy_counterlower_bound_of_big_boy_counter传递给它。就像这样-

代码语言:javascript
复制
declaration_list(strings_line_tokens, big_boy_counter, lower_bound_of_big_boy_counter);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33053108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档