
另外,我的问题也称为空指针?我的教授在讲座中多次使用过这个术语,但我不确定他指的是什么.
//main.cppPerson p1("Jack",22,"UCLA");Q_ASSERT(p1.hasPlayedInTeam(0) == false);//person.cppbool Person::hasPlayedInTeam(Team *pTeam) { bool temp = false; foreach (Team* team,teamList) { if (team->getname() == pTeam->getname() { temp = true; } } return temp;}解决方法 在你的电话中: p1.hasPlayedInTeam(0)
整数文字0转换为NulL指针.所以,你实际上并没有“接收”一个整数;你传递一个整数,编译器可以自动将它转换为空指针(给定NulL的定义).
我认为您可以通过断言其参数不是NulL来修复hasPlayedInTeam的定义,或者在传入NulL时返回默认值:
//person.cppbool Person::hasPlayedInTeam(Team *pTeam) { assert(pTeam!=NulL); //-- in this case,your program will assert and halt 要么:
//person.cppbool Person::hasPlayedInTeam(Team *pTeam) { if (pTeam == NulL) return false; //-- in this case,your program will not assert and continue with a sensible (it actually depends on how you define "sensible") return value 总结 以上是内存溢出为你收集整理的C – 接收指针但接收int的方法全部内容,希望文章能够帮你解决C – 接收指针但接收int的方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)