源代码如下:
1 #include <stdio.h>
23 struct CoinPurse{4 | unsigned gold;5 | unsigned silver;6 | unsigned cooper;7 };89 struct CoinPurse countCoins(char *coins){10 | static struct CoinPurse cp;// = {0, 0, 0};11 | char c;1213 | if(coins == NULL)14 | | exit(1);15 | while( (c=*coins) != '\0'){16 | | switch(c){17 | | | case 'g': cp.gold++;18 | | | | break;19 | | | case 's': cp.silver++;20 | | | | break;21 | | | case 'c': cp.cooper++;22 | | | | break;23 | | }24 | | coins++;25 | }2627 | return cp;28 }2930 int main(){31 | char *coins;32 | struct CoinPurse cp;3334 | printf("please input a string made purely of 's', 'g' or'c'\n");35 | gets(coins);36 | cp = countCoins(coins);37 | printf("gold: %d\tsilver: %d\tcooper: %d\n", cp.gold,cp.silver,
cp.cooper);3839 | return 0;40 }
这段程序执行起来没有问题,但退出时报了"segmentation fault"
问题出在main函数的coins指针上。coins指针负责存储从终端传过来的一个字符串,但没有给其分配空间,因此读入的字符串被存储到一个未知的位置。程序退出时,出现了问题。
这段代码还有很多问题,比如使用了gets()而不是fgets()。但最大的问题在于我在写程序时脑子里没有内存的概念,最近在读《C专家编程》,里面对于程序的组成结构和运行时结构有很好的讲解,带着那些知识去看我的程序,很容易就发现那个错误。
在C语言中,使用指针是件恐怖的事情,因为很容易将指针自身与指针所指向的地址弄混。我认为在使用指针时,一定要确定这个指针所指向内存的位置及生命周期,如果这个问题想不清楚,就容易出现运行时错误。
分享到:
相关推荐
通过教学反思,教师可以更好地理解学生在学习画线段图解决问题时遇到的困难,以及哪些教学环节能够有效促进学生理解和应用这种方法。 标签“资料”表明这是一个教学资源,可能包括教材、课件、练习题等,用于支持...
反思阶段,教师们深入探讨研究过程中遇到的问题,总结经验教训。最后的总结阶段,对整个研究过程进行了全面回顾,提炼出研究成果和实践经验。 研究的主要目的是揭示教师如何捕捉和利用学生的错误资源,形成一套理论...
例如,让学生在完成一道题目后,回顾自己的解题步骤,思考是否有更简便的方法,或者在遇到错误时分析错误的原因。这样不仅锻炼了他们的逻辑思维,还能让他们学会自我调整,改进学习策略。 此外,教师还应该鼓励学生...
同时,鼓励学生自我评价,培养他们的反思能力,让他们在错误中学习,在成功中成长。 总的来说,教授分数的意义并不仅仅是传授知识,更是培养学生的思维能力和解决问题的能力。通过创造性的教学方法和深入的教学反思...
3. 分组游戏与指导:通过分组游戏,教师能更针对性地指导每个孩子,发现并纠正他们在游戏中的错误,确保游戏的顺利进行。 4. 放松与退场:游戏结束后,组织一些轻松的整理活动,帮助孩子们逐渐从兴奋状态过渡到平静...
教学反思对教师个人成长有着重大意义: 1. 增强人格魅力:通过反思,教师能够更好地理解自我,提升专业素养,进而增强在学生和同事间的影响力。 2. 提升教学能力:反思可以帮助教师找出教学中的不足,改进教学方法...
感动于每个孩子的全身心地投入,感动于孩子们对同伴犯错时真诚的宽容,感动于他们教会我不要让宽容"变质",感动于孩子们真诚地表达自己的感受,哪怕是"自黑式"调侃地说:"老师,我暂时做不到对别人错误的宽容"···...
1. **理解问题**:首先,当遇到错误时,必须对问题有深入的理解。这包括阅读错误日志、复现错误场景以及理解可能导致问题的系统架构。通过分析,确定错误的类型,是软件错误还是硬件故障。 2. **重现问题**:能够...
4. **关注错误路径**:不仅要关注正常路径下的测试用例,还要重视异常情况下的测试,因为这往往是用户最常遇到的问题之一。 5. **优化测试用例比例**:建议将测试用例的比例调整为:PASS:ERROR:FAIL=2:7:1,这样可以...
初中数学反思性教学实践主要涉及两个方面:一是识别并分析错误类型,以弥补教学不足;二是加强督促引导,帮助学生学会反思。在处理错误时,教师不仅要指导学生找出错误原因,还要引导他们分析错误的解题思路,避免...
美术教学反思是一个教师在教学实践后,对于教学过程、方法、学生学习效果、以及所遇到问题和挑战进行深入思考的过程。它有助于教师提高教学质量和专业技能,并进一步激发学生的创造力和艺术感悟能力。以下是美术教学...
这篇文档实际上并不是关于IT行业的,而是关于学生对初中语文月考的反思。不过,我们可以从中提炼出一些普遍适用的学习方法和心理调整策略,这些对于任何学科的学习都是有益的,包括IT学习。 首先,文档强调了反思的...
面对错误,我们需要深入反思,分析错误的原因,找出“粗心点”,以防止同样的错误再次发生。对于解答不出的难题,反思的过程应当关注卡住的环节,寻找问题的症结,尝试采用不同的解题策略。解决一个问题后,进一步...
这篇课文是小学语文教材中的看图学文,通过小猴子下山途中遇到的不同事物,让学生理解故事的主线,学习动词的使用,并引发对生活哲理的思考。 首先,教师在教学设计上注重预习和反馈,通过检查预习情况引导学生进入...
在学习初期,学生们可能会遇到一些常见的困难,比如在进行第二层计算时,误将乘几十当作乘几,或者混淆乘数,导致计算错误。 为了解决这些问题,教师采取了一种有效的策略,即在学生书写竖式计算的过程中,同时写出...
学生在考试中遇到的错误反映了对生物术语和概念的理解不足,如错别字问题(鳃丝、韧带、肌腱、气囊、神经的正确书写),以及对生物分类和生殖方式的理解不清晰。 2. 学生学习习惯:错别字现象反映出学生缺乏良好的...
这样的错误理解可能是对“命题”概念理解不准确的结果。 进一步的教学活动中,教师引导学生辨别真假命题,通过比较和分析,帮助他们掌握命题的真假性和判断标准。例如,通过“等角的余角相等”和“相等的角是对顶角...
当遇到错误时,教师要巧妙地指出问题,让全班同学共同参与,从中学习并避免同样的错误。这样,学生不仅理解了错误,还学会了如何自我修正和提高。 其次,面对课堂上可能出现的多种解题算法,教师应保持开放的心态,...
通过这份问卷,我们可以深入探讨学生在数学学习过程中遇到的问题,以及他们对待错误的态度和处理策略。 首先,问卷关注的是学生的自我评估。Q1问到学生对自己的数学成绩的感受,这反映了他们的自我期望和实际表现的...