char *str=NULL; str=(char*)calloc(128,sizeof(char)); memset(str,'\0',128); // 不建议用 memset(str,'\0',strlen(str)); memset(str,'\0',sizeof(str)); // error,sizeof(str)得到的是指针str的大小 4 用完数组后——> free(str); str=NULL; |
char str[128]; memset(str,'\0',sizeof(str)); // sizeof(str)==128; 区别 |
定义的字符数组中,calloc 动态分配空间会直接初始化为全 0 或 ‘\0’ 这两个都是一样的。一般定义数组的时候一定初始化为空,还有动态分配最后一定要free并且让指针为NULL,防止空指针。 |