malloc触发断点
malloc triggering breakpoint
我正在构建一个由以下独立模块组成的应用程序:-GAClient:一个C++可执行程序-GAOrcl:一个由Oracle Pro*C生成的C DLL-GAEngine:一个C++DLL-MyGAUtils:函数的C++库
以下是不同模块的关联方式:-GAClient从GAOrcl调用几个函数,从MyGAUtils调用几个函数;-GAOrcl从GAEngine调用一些函数("DoGATraining"就是其中之一)-GAEngine从MyGAUtils 调用几个函数
我在GAClient.cpp中有两个类似的说明:
double* vKaz=(double*)malloc(5*sizeof(double*));
和GAEngine.cpp:
double* vPastTarget=(double*)malloc(5*sizeof(double*));
我的问题是,malloc在从GAClient调用时运行良好,但随后在从GAEngine调用时崩溃。Visual Studio调试器抛出一个"GAClient.exe已触发断点"arror,并将我指向一个"lseeki64.c"源文件,我不知道它是什么…
我怀疑这可能与DoGATraining被定义为外部"C":这一事实有关
#define EXPORT __declspec(dllexport)
extern "C" EXPORT int __stdcall DoGATraining(int pPastDataCount, double* pPastData)
知道从哪里开始排除故障吗?
您想要一个5个双精度的数组,而不是一个5指针的双精度数组,所以更改
double* vKaz=(double*)malloc(5*sizeof(double*));
至
double *vKaz = malloc(5 * sizeof(double)); /* don't cast malloc */
或
double *vKaz = malloc(5 * sizeof(*vKaz));
相关文章:
- 如果没有malloc,链表实现将失败
- malloc() 可能出现内存泄漏
- Cuda C++:设备上的Malloc类,并用来自主机的数据填充它
- 无法删除指针,已触发断点
- 条件断点在不应该触发时触发
- 当我尝试加载内核模块时,如何修复C++中的这个 malloc() 错误?
- 在C++中创建队列 - 什么是 malloc 错误?
- 如何在 malloc 内存中初始化非 POD 数据
- 使用 malloc() 时出现意外大小
- C++:在被本地字符串捕获后释放或销毁 malloc'd char *?
- 错误:malloc:对象 0x7f9edf504080 的 *** 错误:未分配正在释放的指针
- 将 malloc 替换为数组
- GDB 断点在 Mac 上是不准确的
- SIGSEGV on Boost UDP 套接字关闭 - tcache_get at malloc.c.
- Malloc 在使用线程并行化 SSH 调用时存在问题
- 如何将新更改为 malloc?
- 在 vscode 中运行时无法暂停或设置断点
- 将 malloc 转换为新的正确方法
- 不会命中此断点
- malloc触发断点