#include<stdioh>
int d_bubblesort(int a[],int n)//数组长度为n的冒泡降序排序
{
int i,j;
int temp;
for(i=0;i<n;i++)
{
for(j=n-1;j>i;j--)
{
if(a[j]>a[j-1])
{
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
}
}
return a;
}
void main()
{
int i;
int p=NULL;
int a[10]={6,5,4,1,2,3,9,8,7,10};
int (fun)(int,int);
fun=d_bubblesort;
p=fun(a,10);
for(i=0;i<10;i++)
{
printf("%d\t",p[i]);
}
}
这种方式叫做“用指针函数creat()的返回值来传递动态内存”,这是一个C语法
首先你要注意,子函数creat()用了malloc动态申请内存,而return返回的是指针变量所指向的地址,而不是指针!相当于将你所申请的动态内存返回给主函数
int fun(void)//这里是指针函数
{
int p = (int ) malloc (int);//动态申请内存//p在这里指向了一块合法内存的地址
return p;
}
void main(void)
{
int q = NULL;
q = fun();//fun()返回指针p所指向的地址,(指针p是在栈上创建的,所以fun()函数运行完,指针所分配的内存被系统自动释放)这时q指向p,得到了malloc所申请到的内存
free(q);//释放动态内存
}
必须有,其实值就是这个__FUNCTION__这是库里的一个宏定义,会 *** 作取函数名
下面的程序你可以运行看看,就是你想要的
#include <stdioh>#include <stdlibh>
#define LOG() printf("func here %s\n", __FUNCTION__)
void func(){
LOG();
}
int main(){
LOG();
func();
//system("pause");
}
以上就是关于C语言指向函数的指针的调用全部的内容,包括:C语言指向函数的指针的调用、C语言怎么让一个函数返回指针、c语言 如何打印函数指针名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)