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