我一直在尝试创建一个for循环,它将根据网络数据包的长度进行迭代.在API中,event.packet-> dataLength存在变量(size_t).我想迭代从0到event.packet-> dataLength - 7每次迭代时我增加10但我有一个麻烦的世界.
我寻找解决方案,但一直找不到任何有用的东西.我尝试将size_t转换为unsigned int并使用它进行算术但不幸的是它没有用.基本上我只想要这样:
for (int i = 0; i < event.packet->dataLength - 7; i+=10) { }
Run Code Online (Sandbox Code Playgroud)
虽然每次我做这样的事情或尝试我的转换时,我<#part都是一个巨大的数字.他们在API的教程中给出了printf语句,该API使用"%u"来打印实际数字,但是当我将它转换为unsigned int时,它仍然是不正确的.我不知道从哪里开始.任何帮助将不胜感激 :)
所以我已经调试这个错误几个小时了。我使用 Ogre3d 编写一个程序只是因为它不加载符号,所以它不允许我进行堆栈跟踪,这使得查找崩溃的位置变得更加困难。因此,在调用特定函数之前编写,我打印出“开始”,然后调用该函数,并在打印“停止”后立即写入。在整个函数中,我打印出字母 AF,其中 F 在函数返回之前打印(最后一个“}”上方一行)奇怪的是,当崩溃发生时,它是在打印“F”之后,但没有“停止” '。这是否意味着崩溃发生在某处?我唯一能想到的是在函数期间分配的一些内存的释放过程中出了问题。我从来没有发生过这样的事情,我会继续检查以确保我认为的地方出了问题。