gpt4 book ai didi

c - 数字到整数的顺序相同 C

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

我有一个名为 fun(int num, int * array); 的函数这需要 intint array作为其论据。我正在尝试转换int到数组。

当我运行程序时,我没有正确显示数组

int fun(int num, int*array) {
int count =0;
while(num>0) {
num/= 10;
count++;
}
array[count];
// for loop works
}

当我在程序中打印数组时,即每次运行程序时,我都会得到随机数字。

最佳答案

这条线应该做什么?

array[count];

由于您的整数数组将在您的 fun 函数中发生变化,因此您必须分配内存(通过使用 malloc、realloc...)。

编辑:另外,当您计算“num”中有多少位数字时,您已经更改了“num”所保留的值。复制“num”!

编辑2:我越看你的函数,就越觉得你在使用它时会遇到问题。

首先,您想将整数分解为 int 数组。好的,但是整数有范围,因此意味着整数有最大位数。根据我的内存,64位整数有20位。所以你可以简单地使用“int array[NB_DIGIT_INT_MAX];”与“#define NB_DIGIT_INT_MAX 21”。因此,分配是不必要的,并且会增加代码的复杂性(调用者必须在函数调用后释放)。

其次,你的 fun 函数没有说明有多少个 case 将保存你的整数。假设 num = 12,您的数组将具有“array[0] = 1,array[1] = 2”,但是您如何知道在哪里停止?如果 num = 2345,您如何知道数组中只有第 4 个案例是合法的?有两种方法:您有另一个变量来保存数组的实际大小,或者您的数组中有一个特殊值表示“结束”(例如用作字符串的 char 数组的“\0”)。

您可以使用“-1”。

让我们尝试一下,如果有不清楚的地方,请随时提问(英语不是我的母语)

关于c - 数字到整数的顺序相同 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48426126/

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