malloc

    0热度

    1回答

    我只是将一个Objective-C库转换为C库,希望能够跨平台。然而,一切似乎都没有问题,直到我把这件东西送去处理。 这是在我得到一个错误。 回想几个修订,我注意到调试器中的一些东西。 右像这样一个malloc分配字符串后: char *theString = malloc(SOME_SIZE * sizeof(char)); 我会看到theString是\ X03和* theString是

    26热度

    4回答

    在我看来,我曾经在boost :: pool中玩过几次,我正在认真地用很多对象“流失”来敲击堆。通常我使用boost::object_pool或boost::pool_alloc作为STL模板参数。但结果总是表现几乎没有变化,或明显恶化。 我很想听听有关它的任何成功案例。 我应该寻找什么样的东西在分析输出可能表明boost :: pool可能有帮助? 难道要改善旧的malloc真的很难吗?

    0热度

    4回答

    嘿,大家好,我得到了一个堆腐败错误,我找不出来。 char * c = (char *) malloc(1); // main loop _gcvt_s(c, 100, ball->get_X_Direction(), 10); if(pushFont(c, (SCREEN_WIDTH - 30), (SCREEN_HEIGHT - 40), message, screen, f

    58热度

    6回答

    在Linux上,如果我是malloc(1024 * 1024 * 1024),malloc实际上做了什么? 我确定它会为分配分配一个虚拟地址(如果需要的话,通过走空闲列表并创建一个新的映射),但它实际上是否创建了1个GiB值的交换页面?或者是否mprotect的地址范围,并创建页面,当你实际触摸他们像mmap呢? (我指定的Linux,因为the standard是对这类细节沉默,但我很想知道其他

    1热度

    1回答

    任何人都可以看到这段代码有什么问题吗? SIZE_BG是6MB,因为我试图绘制一个大的位图图像(3366x600)。我使用malloc来防止我的图像溢出堆栈。我在调用glDrawPixels()时遇到访问冲突错误。 bgPtr似乎指向正确的数据,因为我在调用glDrawPixels之前检查了前几个字节,它们是正确的。 bgPtr = (char*)malloc(SIZE_BG); fst

    3热度

    8回答

    我有一个结构,只包含指向我分配的内存的指针。有没有一种方法可以递归释放每个指针的元素,而不是每个元素都自由调用? 例如,假设我有这样的布局: typedef struct { ... } vertex; typedef struct { ... } normal; typedef struct { ... } texture_coord; typedef struct { ve

    0热度

    4回答

    由于我对分配指针的类型内存的理解不够,下面的调用barrier_create会导致总线错误(“hi”从不打印)。 typedef struct barrier barrier_t; typedef struct barrier *barrier_p; barrier_p test_barrier_p; int main(int argc, char *argv[]) { bar

    0热度

    7回答

    我有下面的代码片段,它在'str'中的分配期间崩溃,这是一个动态分配。 char *str; int file_size; FILE *fptr; if (!(fptr = fopen(filename, "r"))) goto error1; if ((fseek(fptr, 0L, SEEK_END) != 0)) goto error2; i

    4热度

    8回答

    我只写了几个星期的C,并没有花时间担心自己对malloc()太多了。然而,最近我的一个程序返回了一串快乐的面孔,而不是我期望的真实/错误值。 如果我创建这样一个结构: typedef struct Cell { struct Cell* subcells; } 再后来初始化像这样 Cell makeCell(int dim) { Cell newCell; f

    0热度

    3回答

    可能重复: Malloc thread-safe? 听说的glibc的malloc()不是线程安全的,因为一个进程调用malloc的几个线程()同时将导致未定义的行为。而我的问题是,如果一个线程调用free(),另一个线程将调用malloc(),这是否会导致未定义的行为?