数组
前言:由于疫情的影响,放假放了三个多月,也开开心心玩了三个多月,也算是入职前的一次大的嗨皮吧。从今天起,开始慢慢更新啦,不为别的,只求记录学习经历与交朋友。
下面是《C和指针》第八章的内容总结,加上一些自己的思考。
举例
ps: 可能看这个图片比较麻烦,举个小小例子来说吧,数组初始化。
这道题是Leetcode上一道简单的字符串题目。
char * freqAlphabets(char * s){
int len = strlen(s);
char* res = malloc(len * sizeof(char));
memset(res, 0, len * sizeof(char));
//char *res = (char*)calloc(len, sizeof(char));
int k = 0;
for(int i = 0; i<len;){
if((i+2) < len && s[i+2] == '#'){
res[k++] = (s[i] - '0') * 10 + (s[i+1]-'0' - 1) + 'a';
i += 3;
}else{
res[k++] = (s[i] - '0' - 1) + 'a';
i++;
}
}
return res;
}
数组初始化有很多方法,在上面的程序中一共用了两种:
第一种:
char* res = malloc(len * sizeof(char));
memset(res, 0, len * sizeof(char));
第二种:
char *res = (char*)calloc(len, sizeof(char));
注意的是:始终牢记:malloc后,一定记得memset,否则,隐藏的BUG折腾死人!