我将动态分配的变量传递给一个函数,然后从中返回
函数,当我对代码运行输入时,其中一些输入会使程序崩溃。
如您所见,我测试了argv数组两次,一次在divide结束时,另一次
divide返回后的时间。在第一次检查中,我从
索引argv0,但在argc检查中(从2nd返回到divide后)
indexmain使0循环崩溃。
很明显我做错了什么,知道吗?

最佳答案

argv =(char**) realloc(argv, (current+1)*sizeof(char*));

这可能是罪魁祸首。调用realloc()可以分配一个新的(可能更大的)内存块,将旧块中的数据复制到其中,然后释放旧块。问题不在于你改变了argvmain()的值,而在于你没有改变它。您正在释放它指向的块,而不更新main()的argv来指向新块。

关于c - 将char **传递给函数,是否不更改其值,还是呢?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10726287/

10-10 10:55
查看更多