102得票4回答
如何在C++中使用'realloc'函数?

我如何在C++中使用realloc函数?似乎该语言缺少这个函数 - 它有new和delete但没有resize! 我需要它因为我的程序读取更多数据时,需要重新分配缓冲区以存储它。我认为删除旧指针并用新的、更大的指针来进行new操作不是正确的选择。

59得票3回答
std::vector在增加容量时是否必须移动对象?或者,分配器是否可以“重新分配”?

一个不同的问题启发了以下想法: 当 std::vector<T> 增加其容量时,是否必须移动所有元素? 据我所知,标准行为是底层分配器请求一个新大小的整个块,然后将所有旧元素移动过去,然后销毁旧元素,最后释放旧内存。 在标准分配器界面给出的情况下,这种行为似乎是唯一可能的正确...

54得票9回答
malloc(0)返回什么?

malloc(0)返回什么? realloc(malloc(0),0)的答案是否相同?#include<stdio.h> #include<malloc.h> int main() { printf("%p\n", malloc(0)); ...

47得票3回答
对于空值(或未定义)指针的realloc操作

我在阅读关于realloc的内容时,对其中提到的一个点感到困惑。考虑下面的代码:#include <stdio.h> #include <stdlib.h> int main () { int* ptr = NULL; ptr = realloc(p...

43得票2回答
我该包含哪个头文件来使用memcpy和realloc函数?

我正在将一个项目移植到iPhone上,其中使用了realloc和memcpy函数,但是这些函数在iPhone的库中找不到。请问需要包含哪个头文件? 这是一个混合了Objective C和C++的项目,我开始感到有些迷失。 非常感谢您的帮助!

42得票4回答
realloc会覆盖旧内容吗?

当我们通过realloc()重新分配内存时,之前的内容会被覆盖吗?我正在尝试编写一个程序,每次输入数据时都会重新分配内存。 请告诉我关于通过realloc进行内存分配的情况,例如它是否依赖于编译器?

41得票5回答
我可以假设调用realloc并使用更小的尺寸会释放剩余空间吗?

让我们来看一下这段非常简短的代码片段:#include <stdlib.h> int main() { char* a = malloc(20000); char* b = realloc(a, 5); free(b); return 0; } ...

40得票2回答
我们在realloc缓冲区后会丢失数据吗?

我对realloc的工作原理感到困惑。如果我使用malloc分配了一块缓冲区,并将数据复制到该缓冲区,比如说"AB": +------------+ | A | B | \0 | +------------+ 我使用realloc重新分配了缓冲区,是否会导致数据丢失(即使只有一个字节)?或...

39得票5回答
使用realloc函数来缩小已分配的内存

在 C 语言中关于 realloc 函数的一个简单问题: 如果我使用 realloc 来缩小一个指针所指向的内存块,那么“多余”的内存会被释放吗?还是需要手动释放? 举个例子,如果我这样做:int *myPointer = malloc(100*sizeof(int)); myPointer...

38得票9回答
用new分配的内存,重新分配时是否安全?

根据这里所写,new 在 free store 中分配内存而 malloc 使用 heap,这两个术语通常指的是相同的东西。 根据这里所写,realloc 可能会将内存块移动到新位置。如果 free store 和 heap 是两个不同的内存空间,那么会有问题吗? 具体而言,我想知道是否可...