C++ - 程序在函数调用中丢失
C++ - Program gets lost in a function call
在这里,我有一段代码,它是一个名为Sistema的类的一部分(所有声明都在一个单独的文件中)。第一个函数应该调用下一个函数,这是一个读取一些树的递归函数(Arbre 是树的自定义实现)。
运行程序时,输出显示"进入函数"行,就在功能调用之前,但我从未得到"新节点"行。所以我的程序在函数调用和函数本身之间的某个地方丢失了,甚至在任何递归调用之前。我以前从未遇到过这样的问题。关于发生了什么的任何线索?
这是代码:
#include "Sistema.hpp"
............
list<int> Sistema::proc_peticion(int pelicula, int tiempo, int tamano){
list<int> srv;
Arbre<int> arb = estructura;
bool unidad_tmp = false;
int dist = 0, bw = 0;
cout << "entering function" << endl;
camino(srv, arb, pelicula, tiempo, tamano, unidad_tmp, dist, bw);
return srv;
}
............
void Sistema::camino(list<int>& srv, Arbre<int>& arb, const int& pel, const int& tmp, const int& size, bool& unidad_tmp, int& dist, int& bw){
cout << "new node ";
if (not arb.es_buit()){
..................
}
}
我试图只留下代码中可能有用的部分,以使其更具可读性。如果您需要更多内容,请告诉我。
提前致谢
你应该在
camino 函数中写入一个 endl,当你在 C/C++ 中写入文件时,数据不一定会写入文件,而是位于内存缓冲区中,直到它被填满或被显式写入(刷新)到磁盘。
这里可能发生的是写入正在发生,程序继续并挂起在函数中。如果你不想编写 endl(执行写入),你可以在之后调用cout.flush()
。
相关文章:
- 使用动态链接加载程序 <dlfcn.h> 而不是直接函数调用的目的是什么?
- 赛马程序,忽略函数调用
- C++实用程序,用于将长开关语句转换为封装开关案例阶梯的简洁函数调用
- 从函数调用C++程序?
- 获取调用函数调用的C++程序中的所有行号
- 当在函数调用中递增值时,程序正常工作,但是如果我们在单独的行中增加值而不是呼叫函数,则会出现错误.为什么
- 如何从LLVM的中间表示中获取在程序的每个函数中执行的函数调用列表
- 如何从另一个函数中调用的函数结束程序 (C++)
- 使用指针的矢量矩阵在对象上调用析构函数时程序崩溃
- 关于函数调用,我的程序没有读取我的其他函数。为什么?
- 当指定初始化程序的顺序和字段声明不一致时,clang可以删除函数调用
- 尝试复制数组时从 DLL 调用函数时程序崩溃
- 调试:跟踪(和diffing)同一程序的两个版本的函数调用树
- C++ 尝试通过内存中的地址调用函数时程序崩溃(如何修复?
- 标准 C++ 程序执行期间的函数调用
- mfc应用程序结束后,CMainFrame的析构函数调用发生访问冲突
- 调用构造函数后程序崩溃
- 等待从获取锁的函数调用的帮助程序函数中的条件变量
- 使用可变包类型扩展的C++函数调用程序包装
- 主函数调用程序中的错误标记