内存分配问题是个很值得注意的地方,我们在写程序的时通常是这样写的:
ptr = (struct name *)malloc(sizeof(struct name));
但似乎这样更适合以后维护和修改:
some_type *ptr ;
ptr = (some_type *)malloc(sizeof(*ptr));
释放内存:
free(ptr);
ptr = NULL; // not required, but a good idea
--------------------------------------------------------------------------
下面是一个字符串拷贝程序,摘自《linux程序设计》
源代码如下:
#include<sring.h>
char *strdup(const char *str){
size_t len;
char *copy;
len = strlen(str) + 1; // inlude room for terminating '/n'
copy = malloc(len);
if(copy != NULL)
strcpy(copy, str);
return copy;
}