头发 发表于 2020-12-1 09:06:43

函数参数传递错误 求解

#include<stdio.h>
void fun1(int *p[],int n)
{
        int i,j,min,t;
        for(i=0;i<n-1;i++)
        {
                min=i;
                for(j=i;j<n;j++)
                {
                        if(p>p)
                        {
                                min=j;
                        }
                        if(min!=i)
                        {
                                t=*p;
                                *p=*p;
                                *p=t;       
                        }
                }
        }
}
int main()
{
        int n;
        scanf("%d",&n);
        int num;
        int i;
        for(i=0;i<n;i++)
        {
                scanf("%d",num);
        }
        fun1(num,n); //这句是错误的
        for(i=0;i<n;i++)
        {
                printf("%d",num);
        }
}

请问为啥错?他不是要传一个地址吗?变量名不就是首地址。怎么改?

chxchxkkk 发表于 2020-12-1 09:29:02

void fun1(int *p[],int n)这里的参数int *p[]是个指针数组,如果传数组进去的话,可以int *p或者 int p[]

lizhuoda 发表于 2020-12-1 09:30:42

动态数组必须调用函数才能用,你排序也是错的

lizhuoda 发表于 2020-12-1 09:35:52

不用函数的话,n必须是个确切的数,要不你就用sizeof
页: [1]
查看完整版本: 函数参数传递错误 求解