c oth

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,防止空指针。





原文地址:https://www.cnblogs.com/meihao1203/p/8023483.html