realloc

    1热度

    2回答

    我正在写一个简单的链表,基于内存管理器的形式: ...标题|块|标题|块...使用和空闲列表。 如果要求realloc()函数减小块的大小,可以用新创建的块的头来覆盖一些尾部字节吗?我读过的文档表明这是'未定义的行为',但应用程序依赖于仍在那里的数据吗?

    17热度

    5回答

    的realloc的参考表示: 功能可以存储块 移动到新的位置,在这种情况下,返回 新位置。 这是否意味着,如果我这样做: void foo() { void* ptr = malloc(1024); unsigned char* cptr = (unsigned char*)ptr+256; ptr = realloc(ptr, 4096); } 然

    1热度

    7回答

    我有一个函数在程序执行过程中被多次调用。在这个函数中,我有一个动态的字符指针,我可以调整大小。 我的问题是:我需要在函数结束之前释放这个指针吗? void functionName() { char *variable = (char *) malloc(0); //variable is resized with realloc x number of times //shou

    1热度

    2回答

    我有一个简单的C程序,它有一个指向字符数组的指针。要启动它,我使用malloc,然后调整大小,然后在程序中稍后设置x次。 当我与realloc调整一次,GDB没有显示任何错误,但是,如果我尝试再次调用调整大小功能,GDB显示以下错误: warning: Invalid Address specified to RtlReAllocateHeap(003E0000, 00404076) 任何想法

    0热度

    5回答

    显然SDL_Mixer中的这个函数不断死亡,我不知道为什么。有没有人有任何想法?根据visual studio,崩溃是由Windows触发realloc()行某处的断点引起的。 有问题的代码来自SDL_Mixer的SVN版本,如果这有所作为。 static void add_music_decoder(const char *decoder) { void *ptr = realloc

    25热度

    2回答

    我正在将一个项目移植到iPhone,它使用realloc和memcpy未找到。什么是标题包括? 这是一个混合Objective C和C++的项目,我开始迷路了。 在此先感谢您的帮助!

    1热度

    3回答

    我正在使用一种没有本地堆栈类型的模糊语言,所以我实现了我自己的。现在,在网上阅读我发现了几种不同的方法来做到这一点。 这是我实现(伪代码) //push method function Push(int) { Increase (realloc) stack by 4 bytes; Push int into the new memory area; } //pop

    10热度

    6回答

    我想知道是否C或C++标准的保证,当realloc的是带一个小的(非零)大小的指针没有改变: size_t n=1000; T*ptr=(T*)malloc(n*sizeof(T)); //<--do something useful (that won't touch/reallocate ptr of course) size_t n2=100;//or any value in [1,

    4热度

    8回答

    我试图创建一个函数,它将一个数组作为参数,向它添加值(如果需要,增加它的大小)并返回项的数量。 到目前为止,我有: int main(int argc, char** argv) { int mSize = 10; ent a[mSize]; int n; n = addValues(a,mSize); for(i=0;i<n;i++) {

    3热度

    4回答

    我正在用C编写一个使用win32 API的应用程序。 当我尝试放大我的数组的大小时,使用HeapRealloc()函数,它会更改数组中的当前值,而不是复制它们。 我使用的代码重新分配内存: BOOL ChangeFeedArraySize(UINT newSize) { char tempChar[20] = ""; PFEED tempArr; if (newSi