【发布时间】:2013-08-06 07:32:33
【问题描述】:
我只想使用 studio.h 库通过使用数组存储余数将十进制数转换为二进制数但结果不正确,可能是我的内存分配有问题或返回值错误,请帮助我检查它。 非常感谢!
#include <stdio.h>
int n = 0;
int* DecimalToBinary(int number){
int a[10];
while(number!=0){
a[n++] = number%2;
number/=2;
}
return a;
}
void main(){
int *d1 = DecimalToBinary(5);
int *d2 = DecimalToBinary(10);
for(int i = n-1 ;i>=0;i--)
printf(" %d",d1[i]);
printf("\n");
for(int i = n-1 ;i>=0;i--)
printf(" %d",d2[i]);
}
【问题讨论】:
-
“结果不正确”——以什么方式?
-
变量
a在堆栈上声明,离开该函数时超出范围! -
讲座为什么你不能这样做eskimo.com/~scs/cclass/int/sx5.html
-
标准函数
itoa做你想做的事; this 实现使用 static 数组来正确执行此操作(在代码中查找static以了解如何操作)。 -
void main()是懒惰的编程。使用int main()。