c代码指针2例

来源:互联网 发布:snmp获取linux信息 编辑:程序博客网 时间:2024/06/05 17:07

对指针一向不敢用,怕出问题,今特地记录2例子:#include <list>

using namespace std;
struct  strmsgbuf
{
 char * msg;
};
void savecachebuf(char *msg){
 strmsgbuf buf1;
 buf1.msg=(char*)malloc(strlen(msg)+1);
 if (buf1.msg!=NULL)
 {
  strcpy(buf1.msg,msg);
  g_list.push_back(buf1);
 }
}

调用: savecachebuf(data);
list<strmsgbuf> :: iterator pCall; 
 while((pCall=g_list.begin())!= g_list.end())
 {  
   dlllogs(0,_T("g_list.size()=%d"),g_list.size());
......}
 free(pCall->msg);

---------------------------------------------------------

另外,对于char * p这样的参数,想清空取长度不能sizeof(p),这个只是一个int4个字节,也不能strlen(p),这样是仅仅在某个/0之前的,一般情况strlen没问题,为了保险传参数用2个,一个char *p,一个是该指针可用的最大长度

原创粉丝点击