十进制转二进制
#include<stdio.h>
#include<math.h>
int *to_bin(int num,int *we)
{
int yu,i = 0,wei;
for(int j = 0;;j++)
{
if(pow(2,j) > num){
wei = j;
break;
}
}
*we = wei;
int *bin_reverse = malloc(sizeof(int) * wei);
//核心
while (num != 0)
{
yu = num % 2;
num /= 2;
bin_reverse[i] = yu;
i++;
}
int *bin = malloc(sizeof(int) * wei);
for(int i=0;i<wei;i++)
{
bin[i] = bin_reverse[wei-i-1];
}
return bin;
}
int main()
{
int *p = NULL,wei;
p = to_bin(7,&wei);
for(int i=0;i<wei;i++){
printf("%d",*(p+i));
}
}
指针做输入参数时,调用时不能用空指针