同一个C程序的不同输出
我有一个指针问题:同一个C程序的不同输出,c,pointers,C,Pointers,我有一个指针问题: SearchResults* pointy; pointy = returnResults(); if(pointy != NULL && pointy->results[0] != NULL) { HandleResponse(); printf("sharp");
SearchResults* pointy;
pointy = returnResults();
if(pointy != NULL && pointy->results[0] != NULL)
{
HandleResponse();
printf("sharp");
}else{
//do other things
}
if(pointy == NULL){
printf("blunt");
}
if(pointy->results[0] == NULL){
printf("wah!!!");
}
在调试器中,代码正常工作,我变得尖锐,但在bash终端的相同条件下,我得到了wah
typedef struct SearchResults
{
TreeNode* results[40];
int searchIndex;
} SearchResults;
SearchResults* lostAndFound;
SearchResults* returnResults()
{
return lostAndFound;
}
在调试版本和发布版本中都发现问题。存在.csv文件。。调试对它的读写操作非常好,而发行版似乎将它变成了一片空白。returnResults在做什么?你是说!=在标题中,我们将使用更多的代码来识别该问题。或者至少您是如何调用程序的。它是server605 lines&&binaryTree300 lines的搜索函数的一部分,用于返回多个结果。pointy->results[n]应该是指向树节点的指针有限地需要更多代码。如果程序超过900行,则需要将其缩小以隔离问题。你不能指望我们调试一个900行的程序,但当你只显示25行的时候肯定不行。我们不是魔术师。应该是指向树节点的指针还不够好-它应该可以正常工作,但显然不行。