gpt4 book ai didi

c - Int 指针在 C 中具有奇怪的行为

转载 作者:行者123 更新时间:2023-11-30 15:14:35 24 4
gpt4 key购买 nike

void main(){
int digits[21]; //this was initialized so that every element is 0 by looping over every element and setting it to 0
char input[20];
scanf("%s", input);
parseDigits(digits, input);
}

void parseDigits(int* digits, char *string){
char *end = string + strlen(string) -1;
int i;
for (i = 0; i < strlen(string) - 1; i++, end--){
int *digit = digits + i;
printf("%d", *digit);
*digit += charToDigit(*end);
if (*digit >= 10){ //carry one
*digit -= 10;
digit++;
*digit += 1;
}
}
}

打印一个过大的整数,而不是预期的输出 0。我不明白,因为

digits + i

应该仍在数组的范围内。

最佳答案

可能还有其他问题,但乍一看您没有正确初始化数组,应该这样做:

int 数字[21] = { 0 };

关于c - Int 指针在 C 中具有奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34018557/

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