这些是我在训练递归时遇到的一些疑惑,我现在图片展示的这个算法是正确的,但是当输入的k过大时就会导致内存爆掉,我正在想办法用动态数组解决,想了一天一夜多实在不会了。
除此之外还有几个问题,希望可以得到解答
问题1:如何用动态数组来完善我这个算法思路。
问题2:char *s1="hello"这样定义出来的字符串不能修改,所以我只好把一开始的字符串定义成 char s1[]="a";这样却导致我后来发现内存不够用后不会把malloc这个东西套进来,不会初始化字符串以及修改字符串了,我对malloc这个东西的用法不太熟悉,感觉使用指针来用malloc和修改字符串这两个事件从性质上冲突了,请解惑
问题3:递归的本质就是重复调用一个函数,为了达成重复调用的效果,我只能把指针设置在function2里面,因为如果设置在主函数里好像无法递归,只能主函数里是字符数组,调用函数里指针指过去,这样调用函数运行结束后才能把字符串的内容保存下来,而且因为我只会把指针设置在被调用的函数里,导致我后来试着用malloc改良的时候也只能把malloc放在被调用函数里面,好像是因为malloc只能用在指针里面?这是我本人粗略的理解,请指正
问题4:想要知道更多关于c语言字符串的细节知识,尤其是开发过程中容易踩坑的细节,上面几个问题本质上来说就是我一个初学者对malloc和字符串的一些性质不了解而且没办法自己想明白
本人qq2328714837,我想学到更多有用相关的知识,并愿意支付额外报酬