gpt4 book ai didi

在 C 中通过引用传递数组时崩溃

转载 作者:太空宇宙 更新时间:2023-11-04 01:02:46 25 4
gpt4 key购买 nike

我正在尝试将数组传递给 C 中的函数。我知道您不能通过值来执行此操作,而只能通过指针。

到目前为止,我已经确保我的数组 (intInput) 在 main(void) 之外声明,以确保它的范围是正确的,但是当我运行程序时,它在到达该行时崩溃:

printf("%d", intInput[u]);

我怀疑我搞砸了指针的使用,特别是函数的声明调用和参数的传递。我做错了什么?

#include <stdio.h>
int intInput[16];
int main(void)
{
// Reference post http://web.eecs.umich.edu/~bartlett/credit_card_number.html
char strType[20];
printf("What card type do you want to verify? ");
scanf("%s", strType);
int c;
int i;

for (i = 0; i <= 15; i++)
{
printf("Please insert next char: ");
scanf("%d", &c);
printf("Character entered: %d \n", c);
intInput[i] = c;
printf("Value of i is: %d \n", i);
}

mastercard(intInput[16]);
}

void mastercard(int intInput[])
{
// Prefix 51-55, Length 16, Check Digit Algorithm MOD 10
int u, intTotalAlternate;
u = 15;
intTotalAlternate = 0;
puts("GOT THIS FAR");
while (u > 1)
{
printf("%d", intInput[u]);
intTotalAlternate += (intInput[u]);
printf("value %d \n", (intInput[u]));
u -= 2;
}
}

最佳答案

mastercard(intInput[16]);

intInput[16] 不存在。
它也将是一个 int 类型的值,它与函数所期望的不兼容。

打开所有编译器警告并注意它们

关于在 C 中通过引用传递数组时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32164432/

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