C提高 6 指针杂项 API函数封装,sockets封装 ,内存泄漏检测,日志库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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; } 编译运行: [email protected]:~/high$ gcc -g -o run main.c && ./run Hello! 6 [email protected]:~/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; } 编译: [email protected]:~/high$ gcc -g -o run main.c && ./run Goog morni [email protected]:~/high$
本文出自 “魂斗罗” 博客,请务必保留此出处http://990487026.blog.51cto.com/10133282/1792292
以上是关于C提高 6 指针杂项 API函数封装,sockets封装 ,内存泄漏检测,日志库的主要内容,如果未能解决你的问题,请参考以下文章