码迷,mamicode.com
首页 > Windows程序 > 详细

C提高 6 指针杂项 API函数封装,sockets封装 ,内存泄漏检测,日志库

时间:2016-06-23 18:58:03      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:c提高 6 指针杂项 api函数封装   sockets封装   内存泄漏检测   日志库   


指针杂项演示:

同一个函数分两次调用,执行不同的功能:


1,基本操作,被调函数分配内存

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int getcontentlen(char *filename,char **buf,int *len)
{
        char *tmp = (char*)malloc(100);
        if(tmp == NULL) return -1;
        strcpy(tmp,"Hello!");
        *len = strlen(tmp);
        *buf = tmp;
        return 0;
}


int main()
{
        int ret = 0;
        char *filename = "myfile.txt";
        char *buf = NULL;
        int len = 0;
        ret = getcontentlen(filename,&buf,&len);
        if(ret != 0){return ret;}
        printf("%s \n",buf);
        printf("%d \n",len);
        
        if(buf != NULL) free(buf);

        return 0;
}

编译运行:
chunli@Linux:~/high$ gcc -g -o run main.c && ./run 
Hello! 
6 
chunli@Linux:~/high$


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int getcontentlen(char *filename,char *buf,int *len)
{
        if(buf == NULL) 
        {
                *len = 10;
                return 0;
        }
        else
        {
                strncpy(buf,"Goog morning!",10);

        }
        return 0;
}


int main()
{
        int ret = 0;
        char *filename = "myfile.txt";
        int len = 0;
        ret = getcontentlen(filename,NULL,&len);
        char *buf = (char *)malloc(100);
        ret = getcontentlen(filename,buf,&len);
        printf("%s \n",buf);
        return 0;
}

编译:
chunli@Linux:~/high$ gcc -g -o run main.c && ./run 
Goog morni 
chunli@Linux:~/high$










本文出自 “魂斗罗” 博客,请务必保留此出处http://990487026.blog.51cto.com/10133282/1792292

C提高 6 指针杂项 API函数封装,sockets封装 ,内存泄漏检测,日志库

标签:c提高 6 指针杂项 api函数封装   sockets封装   内存泄漏检测   日志库   

原文地址:http://990487026.blog.51cto.com/10133282/1792292

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!