gpt4 book ai didi

c - 将数组指针作为参数传递

转载 作者:行者123 更新时间:2023-11-30 15:38:28 27 4
gpt4 key购买 nike

我正在尝试将 int 数组作为指针传递给函数。我当前收到以下错误:预期为“int (*)[100]”,但参数的类型为“int *”void。

void count_frequency(int *number) {
int i;
int len = sizeof number / sizeof(int);
printf("%i\n", len);
printf("reached here");
for(i = 0; i < len; i++){
printf("%i\n", &number[i]);
}
}



int main(){
int i;
int table[MAX];
int len = sizeof table / sizeof(int);
printf("reached before loop\n");

for(i = 0; i < len; i++){
table[i] = random_in_range(0, 20);
}
count_frequency(table);

//printf("%i", sizeof(table) / sizeof(int));
return 0;
}

最佳答案

您发布的代码与您收到的错误不一致。唯一错误的是:

  • 请记住,%d 或 %i 需要作为参数传递的整数
  • 我假设“random_in_range”函数使用 rand() 如下

     #include <stdio.h>

    #define MAX 100


    int random_in_range(int a, int b)//this function will generate a random number between specified range
    {
    return (a+rand()%(b-a+1));
    }


    void count_frequency(int *number) {
    int i;
    int len = sizeof number / sizeof(int);
    printf("%i\n", len);
    printf("reached here");
    for(i = 0; i < len; i++){
    printf("%d\n", number[i]);
    }
    }



    int main(){
    int i;
    int table[MAX];
    int len = sizeof table / sizeof(int);
    printf("reached before loop\n");

    for(i = 0; i < len; i++){
    table[i] = random_in_range(0, 20);
    }
    count_frequency(table);

    printf("%i", sizeof(table) / sizeof(int));
    return 0;
    }

http://ideone.com/LG96iA

关于c - 将数组指针作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21738651/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com