指针函数 和 函数指针 指针为参数时使用堆内存

来源:互联网 发布:乐乎 编辑:程序博客网 时间:2024/06/16 09:37
/*-----函数指针 + 出参-----*/#include <stdio.h>#include <string.h>#include <stdlib.h>char *GetString(char **p){    *p = (char *)malloc(11);    strcpy(*p,"hello world");    return *p;}int main(){    char *pStr = NULL;          char *pStr2 = GetString(&pStr);    printf("----pStr=[%s]\n",pStr);    printf("----pStr2=[%s]\n",pStr2);    if(NULL != pStr)    {        printf("---free pStr---\n");        free(pStr);    }    if(NULL != pStr2)    {        printf("---free pStr2---\n");        free(pStr2);    }    return 0;}/*-----指针函数------*/#include <stdio.h>#include <stdlib.h>#include <string.h>int Add(int iX,int iY){    return (iX + iY);}int Sub(int iX,int iY){    return (iX - iY);}int Div(int iX,int iY){    return (iX / iY);}int Mul(int iX,int iY){    return (iX * iY);}int Fun(int iX,int iY,int (*fun)(int,int)){    int iRet = 0;    iRet = (*fun)(iX,iY);}int main(){    int iRet = 0;    int iX = 10,iY = 2;    iRet = Fun(iX,iY,Add);    printf("--Add--iRet=[%d]\n",iRet);    iRet = Fun(iX,iY,Sub);    printf("--Sub--iRet=[%d]\n",iRet);    iRet = Fun(iX,iY,Div);    printf("--Div--iRet=[%d]\n",iRet);    iRet = Fun(iX,iY,Mul);    printf("--Mul--iRet=[%d]\n",iRet);    return 0;}

0 0
原创粉丝点击