在重构旧的C代码里,使用了这个函数,
pNew = new OBJECTDESC;sscanf(buf, "%x", &i);pNew->wObjectID = i;pNew->lpDesc = _strdup(p);pNew->next = lpDesc;lpDesc = pNew;
这里是使用windows平台的_strdup函数,这个函数是这样定义的:
char *strdup(const char *s){ char *t = NULL; if (s && (t = (char*)malloc(strlen(s) + 1))) strcpy(t, s); return t;}
它是先分配内存,再把字符串拷贝过来,因此当这个指针不再使用时,就需要释放内存,调用free函数。
说明:
功 能: 将串拷贝到新建的位置处
strdup()在内部调用了malloc()为变量分配内存,不需要使用返回的字符串时,需要用free()释放相应的内存空间,否则会造成内存泄漏。
1. RPG游戏从入门到精通
http://edu.csdn.net/course/detail/5246
2. WiX安装工具的使用http://edu.csdn.net/course/detail/5207