C语言指针做形参 问题

发布网友 发布时间:2022-03-30 23:27

我来回答

2个回答

热心网友 时间:2022-03-31 00:56

出现BUG的问题不太清楚,但是解决方法是你得把生成的debug.exe删掉,是代码生成错误后,找不到debug的执行文件才会这样,你删掉以后重新生成一次,还是不行就是代码挂了。然后问题的原因我大概看了一下,你在fun()里char了一个指向s的指针,但是这个s是局部的,所以说s的生命周期到fun()语句结束就释放掉了,而main函数里的s是你另开辟的一个100元素的字符数组,它只代表数组,并不会调用fun()里的s,建议你内存分配先看一下,特别是堆栈这一块。追问t字符串里最后放一个结束字符,不应该是t[j]='\0'吗,他为什么可以写成 t[j]=0?

追答一个数组如果只有前几个有值,后面的自动补成结束符,不需要写
小伙子 多看看指针,书读百遍其义自见

热心网友 时间:2022-03-31 02:14

没有排版的代码看得很累,问题1:数组作函数参数会退化为指针,所以一般也需要传入数组的大小。问题2:因为==1就是真,是逻辑判断,此处只关心是0还是非零。问题3一般是数组越界或者操作未初始化的指针,代码实在比较乱,就没细看了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com