heap-corruption

    0热度

    1回答

    我的代码工作正常,直到我尝试释放分配的内存。我malloc编辑files指针,后来我用realloc来增加大小。但是当我尝试释放内存时,它给了我无效的指针错误,不知道为什么。 char *files = malloc(1); char *temp = strdup(argv[i]); strcat(temp, "/"); strcat(temp, dp->d_name); DIR *chi

    -3热度

    2回答

    我已经写了下面的程序崩溃: #include <stdio.h> #include <string.h> #include <stdlib.h> void main(int argc, char *argv[]){ char *input; input = (char*)malloc(16); printf("input is : %s\n", input);

    -2热度

    1回答

    如果Windows 2012 R2服务器上运行的每个进程都有自己的堆,那么是不是有可能让一个进程损坏了另一个进程的堆?我认为这是可能的,因为所有堆都存储在“全局”地址空间中,但是当一个进程尝试从其地址空间外的内存中写入或从内存中读取时发生AV,这样可以防止堆进程损坏拥有地址空间?

    1热度

    2回答

    的阵列所以,我有一个类 class Room { public: Room(); ~Room(); tile::Tile* tile[11][7]; // Owned } 的有一个构造和析构函数,tile::Tile是一个抽象基类,所以是一个指针。指针数组tile,需要像这样在构造函数中填充。 Room::Room() { for (s

    2热度

    1回答

    我有一个类的字符串和迭代器作为成员。 有一个GetNext()方法,给我下一个元素并增加迭代器。使用来自外部的类我检查一个空字符串以指示双端队列的结束。 不幸的是,当构造函数被调用并且最后一个元素使用GetNext时,我得到了一个Heap腐败。 我想这是因为在双端队列中的最后一个字符串(空字符串)之后,迭代器仍然递增并在内存中指向? 这样,析构函数然后试图释放这个内存,然后崩溃? #include

    1热度

    1回答

    我在写一个C#程序,调用sam-ba.dll中的AT91Boot_Scan函数。在该DLL的documentation中,此函数的签名是void AT91Boot_Scan(char *pDevList)。此功能的目的是扫描并返回连接设备的列表。 问题:我现在的问题是,我每次调用此函数从C#的时间,在DLL的代码引发a heap has been corrupted例外。 除了:从我从阅读docu

    1热度

    1回答

    我目前正在使用C++编写游戏,并且正在使用SDL 2.0库。 我试图从纹理中检索32x32图像以存储为图块,并试图从纹理的像素重新创建它。当我运行这段代码并试图通过for循环编辑Uint32 *时,我可以编辑它,但是一旦我尝试创建图像,就会发生堆损坏。 我现在有这样的代码运行: Uint32* pixels = (Uint32*)m_pSprite->GetPixels(); int pixel

    -1热度

    1回答

    动态转换在其工作的相同功能中失败。 动态转换在调用commitTransaction之前工作,在commitTransaction之后失败。 在commitTransaction中,在执行删除和新操作的地方调用复制操作符。关于这里发生了什么的任何想法?我读到堆损坏可能会导致dynamic_cast失败。任何人都可以解释为什么发生这种情况? #include <iostream> #include

    0热度

    1回答

    我试图为使用GFlags的小应用程序启用页堆,但由于某些原因,它不起作用。 我写了一个小的C++应用程序,它是所有破坏堆内存: int* a; a= (int*)malloc(1); *a= 8888800; return 0; 当运行该代码的应用程序不会崩溃。 但是在启用页堆的情况下,我期望它在第三行。 我怀疑我没有正确激活GFlags,但无法弄清楚问题所在。在图像文件选项卡中运行GF

    0热度

    1回答

    因此,我是iOS新手,正在尝试使用具有定时更新UI的计时器的视图控制器。我看到的问题是我正在获取堆损坏,更具体地说是由objc_retain调用引起的EXC_BAD_ACCESS KERN_INVALID_ADDRESS错误。 此错误是在几个地方,但都在我的定时器功能和更高的调用堆栈__CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION 上发