gpt4 book ai didi

C - 将数组传递给方法

转载 作者:行者123 更新时间:2023-11-30 20:43:27 26 4
gpt4 key购买 nike

将数组传递给函数时遇到问题

由于某种原因,它的一半元素似乎丢失了,并被其他一些东西取代。

当我在调用该方法之前迭代数组时,我得到以下输出:

    Votes: 2387
Votes: 2105
Votes: 1230
Votes: 1132
Votes: 2587
Votes: 559

在方法中我得到这个:

    Votes: 2387
Votes: 1230
Votes: 2587
Votes: 1
Votes: 6689632
Votes: 4199349

看起来它是 2 × 2,而不是向迭代器加 1,也许我没有以正确的方式使用指针。

这是代码,也许你可以看到哪里出了问题:

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

void method(int *options[], int *numberOfOptions);

main() {

int options[6] = {2387,2105,1230,1132,2587,559};

int size = 6;

int i = 0;

while (i < size) {


printf("Votes: %d \n",options[i]);

i++;

}

method (&options,&size);

}

void method(int *options[], int *numberOfOptions) {

int i = 0;

while (i < *numberOfOptions) {

int optionVotes = options[i];

printf("Votes: %d \n",optionVotes);


i++;
}


}

最佳答案

编译器确实会发出有关数组指针传递的警告。您还不必要地将数组大小作为指针传递。

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

void method(int *options, int numberOfOptions);

main() {
int options[6] = {2387,2105,1230,1132,2587,559};
int size = 6;
int i = 0;
while (i < size) {
printf("Votes: %d \n",options[i]);
i++;
}
method (options,size);
}

void method(int *options, int numberOfOptions) {
int i = 0;
while (i < numberOfOptions) {
int optionVotes = options[i];
printf("Votes: %d \n",optionVotes);
i++;
}
}

关于C - 将数组传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26393645/

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