算法中有很多长度不确定的数组的中间变量,C语言怎么处理

qq229873466 2017-07-13 08:43:24
每次用C语言实现算法时都会发现会出现很多的中间变量数组,而且长度都是要动态确定的,这些变量都只是过渡用的,然后我就每次遇到就calloc申请内存,用完就free,一个函数下来有好多个这样的函数。请问有什么更好的方法处理这类问题?按我这么做,在申请释放内存的操作耗时会不会成为问题?
...全文
754 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
nanjun520 2017-07-26
  • 打赏
  • 举报
回复
先看看算法上能不能优化吧, 不行就先开辟一块大的内存区域,也就是内存池呗, 程序退出或者是不需要算法的时候 再清理一次
zhengjiankang 2017-07-26
  • 打赏
  • 举报
回复
char gbuffer[1024]; ... if (length <= 1024) use gbuffer else: char * tempbuffer = malloc(length) use tempbuffer
赵4老师 2017-07-13
  • 打赏
  • 举报
回复
realloc
战在春秋 2017-07-13
  • 打赏
  • 举报
回复
STL中的vector属于C++,C中并没有vector这个数据结构,当然,可以用C先创建vector,网上有相关资料。 回到题目,还是最好考虑算法本身的设计优化,是否可以避免过多中间变量? 算法题资料很多,同一个问题可以看看别人的程序是怎么处理的。
ck2333 2017-07-13
  • 打赏
  • 举报
回复
用c++里面标准模板库STL的vector。这样就不需要动态分配大小了。
真相重于对错 2017-07-13
  • 打赏
  • 举报
回复
用stl 的 vector

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧