C语言函数传指针的关系
int * Fun(int n){
int i = 0;
int * x = (int *)malloc(6 * sizeof(int));
while ( n!= 0 )
{
x = n%2;
n /= 2;
}
return x;
}
调用这个函数返回一个地址让主函数的一个数组接受是二级指针么?
int **a, **b, **c;
*a = Fun(h);
*b = Fun(m);
*c = Fun(s);
方式对不?
for ( i=5;i >= 0;--i )
{
printf("%d%d%d",**a,**b,**c);
a++,b++,c++;
}
输出呢?
谁来帮忙看看
#include<stdio.h>
#include<stdlib.h>
int * Fun(int n)
{
int i = 0;
int *x = (int *)malloc(6 * sizeof(int));
while ( n!= 0 )
{
x = n%2;
n /= 2;
}
return x;
}
int main(void)
{
int *a, *b, *c;
int h=16,m=17,s=18;
int i;
a = Fun(h);
b = Fun(m);
c = Fun(s);
for ( i=5;i >= 0;--i )
{
printf("%3d%3d%3d\n",*a,*b,*c);
a++,b++,c++;
}
return 0;
} *a = Fun(h);
*b = Fun(m);
*c = Fun(s);
这肯定不对,a,b,c都没有初始化,就不能给它所指的变量赋值。 a++,b++,c++;
这是语句?可以运行? 多级指针大多时候是对多维数组用的,其实你这个一维数组,用单指针就可以了。你返回的本来就是一个数组的首地址而已,一维就够了! a++,b++,c++;
这是语句?可以运行?
页:
[1]