|
|
发表于 2023-1-3 16:42:18
|
显示全部楼层
本帖最后由 两手空空儿 于 2023-1-3 16:45 编辑
- // 定位到字符串的末尾
- while(last[limit++] != '\0') //找到\0的位置就是末尾了,只不过它记录位置的方法是通过 INCRMENT * time + limit 的方式
- {
- if(limit >= INCREMENT)
- {
- limit = 0;
- times++;
- last += INCREMENT;
- }
- }
复制代码
- if(limit >= INCREMENT)
- {
- int offset = last - result;
- result = (char *)realloc(result, INIT_SIZE + INCREMENT * times);
- //这里用的是realloc,result被重新分配内存以后,原来的内容会被复制到新的内存单元中,所以这里result指向的内容和原来的内容是一样的,
- // last[limit]修改的内容就是result指向的内容
- last = result;
- last += offset;
- last += INCREMENT;
- limit = 0; // reset
- }
- last[limit] = '\0';
复制代码 |
|