发布网友 发布时间: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一般是数组越界或者操作未初始化的指针,代码实在比较乱,就没细看了。