#include<stdio.h>
#include<conio.h>
unsigned * bin(unsigned n) {
unsigned a[16];
int i = 0, j = 0;
for (i = 0; i < 16; i++) {
a[i] = n & 0x1;
n = n >> 1;
}
return a;
}
void main() {
unsigned n = 5;
int i = 0;
unsigned * a = bin(n);
for (i = 15; i >= 0; i--) {
printf("%d\n", (*(a + i)));
}
getch();
}
Run Code Online (Sandbox Code Playgroud)
请帮助这个二进制转换不起作用.我正在尝试x^n使用二进制转换进行计算.可以任意帮助??
您正在返回指向局部变量的指针.此变量存储在堆栈中,在函数返回后无效.
取消引用此指针将导致未定义的行为.
解决方案是创建变量static,或者将数组作为参数传递给函数,或者(如James Kanze的评论中所述)使用复制内容的类型.
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |