gpt4 book ai didi

crash - rapidJson:在 Release模式下崩溃

转载 作者:行者123 更新时间:2023-12-03 17:09:16 26 4
gpt4 key购买 nike

我用了rapidJson读取json数据。我可以在调试和 Release模式下构建我的应用程序,但应用程序在 Release模式下崩溃。

    using namespace rapidjson;
...
char *buffer;
long fileSize;
size_t fileReadingResult;

//obtain file size
fseek(pFile, 0, SEEK_END);
fileSize = ftell(pFile);
if (fileSize <= 0) return false;
rewind(pFile);

//allocate memory to contain the whole file
buffer = (char *)malloc(sizeof(char)*fileSize);
if (buffer == NULL) return false;

//copy the file into the buffer
fileReadingResult = fread(buffer, 1, fileSize, pFile);
if (fileReadingResult != fileSize) return false;
buffer[fileSize] = 0;

Document document;
document.Parse(buffer);

当我在 Release模式下运行它时,我遇到了 Unhanded exception; A heap has been corrupted .
应用程序在 "res = _heap_alloc(size) 处中断在 malloc.c文件
void * __cdecl _malloc_base (size_t size)
{
void *res = NULL;

// validate size
if (size <= _HEAP_MAXREQ) {
for (;;) {

// allocate memory block
res = _heap_alloc(size);

// if successful allocation, return pointer to memory
// if new handling turned off altogether, return NULL

if (res != NULL)
{
break;
}
if (_newmode == 0)
{
errno = ENOMEM;
break;
}

// call installed new handler
if (!_callnewh(size))
break;

// new handler was successful -- try to allocate again
}

它在 Debug模式下运行良好。

最佳答案

也许它可能是 memory leak您的 Malloc 的问题因为它在 Debug 中运行良好一次,但是当您将应用程序保持更长的时间时,它会崩溃。

你有吗free您的 buffer使用后?

关于crash - rapidJson:在 Release模式下崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45425217/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com