C语言线性表 vs自动增长
无法实现自动增长,但是我感觉代码没有出错。
void extend_str(String* str) {
//申请新空间
char* newbase = (char*)realloc(str->str, sizeof(char) * (str->all_count + EXTEND_LENGTH));//无法进行增长
if (newbase == NULL) exit(-1);
char* temp = str->str;
str->str = newbase;
str->all_count += EXTEND_LENGTH;
//释放旧空间
free(temp);
temp = NULL;
}
str必须是动态分配的内存才能realloc。
str.str = (char *)malloc(10);
realloc后不需要free
str->str = newbase; 这个也不需要