字符串的变长存储结构

请问一下,图中是字符串的相关操作,第一个if是用来判断str是否存在,若存在则释放掉。
那为什么while(*C)那个地方还能对++C进行判断?str字符串不是已经被free掉了吗?(原视频说的是这个while循环是检测到’/0’时结束,len是求该串的长度)

img

因为有char *c = ch啊,释放的是str.ch,又不是参数ch