malloc

    1热度

    1回答

    我有一个使用malloc指针的模拟二维数组,我想获取该数组的大小,因为sizeof()返回指针的大小。 我的代码(ANSI C): void main(){ int s1=10; int s2=15; int ** rack=(int**)malloc(s1*sizeof(int**)); for(int i=0; i<s1; i++) rack[i]=(i

    0热度

    3回答

    我期待使用madvise和malloc但我总是相同的错误: madvise error: Invalid argument 我试图用MADV_DONTDUMP节省一些空间,我的二进制文件但它不起作用。 页面大小是4096 int main(int argc, char *argv[]) { void *p_optimize_object; unsigned int optim

    1热度

    1回答

    我使用下面的代码列出目录中的文件,然后将它们放入一个名为filename_list的长字符串中。该逻辑是 使用的strdup(“”)的环路 之前分配一个零字符,空终止字符*使用的realloc()来做到这一点,其保留增加其大小在每个迭代现有的内容。我通过将旧的长度添加到文件名的长度来计算新缓冲区的时间。 我使用strcat()将文件名附加到缓冲区。 它工作正常,直到它试图调用realloc()为导

    -1热度

    3回答

    我试图理解的代码片段在 free a double pointer 和 Why use double pointer? or Why use pointers to pointers? 我想了解以下之间的差别来分配内存。这两个片段是从上面的网址 int** pt; pt = (int*) malloc(sizeof(int)*10); 和 *pt = (int*) malloc(sizeo

    3热度

    2回答

    我试图释放分配阵列的存储内struct _Stack,但该计划一直 typedef struct _Stack { int top; unsigned int capacity; int* arr; }_Stack; _Stack* createStack(int capacity) { _Stack* stack = (_Stack*) mall

    3热度

    5回答

    从http://en.cppreference.com/w/c/memory/malloc: 返回的指针必须用免费被解除分配()或realloc()。 从http://en.cppreference.com/w/c/memory/calloc: 返回的指针必须用免费被解除分配()或realloc()。 严格地说,为什么必须返回指针被释放? 现在我知道POSIX强制内存将在程序终止时被释放,所以在实

    2热度

    2回答

    我读过重复调用malloc/free可能会很昂贵,因此C++标准库容器使用内存池而不是在它们的析构函数中调用free。另外,我读过,这意味着C++标准库容器的性能可能比手动分配和释放所有必需的C风格数组要高。 不过,我很困惑这个,因为现在我在C FAQ正在阅读:(http://c-faq.com/malloc/freetoOS.html) 大部分的malloc实现/免费不释放的内存返回操作系统,但

    -1热度

    1回答

    我试图将结构复制到结构数组中。 我有一个具有顶点的动态分配的数组称为 vlist 和一个整数存储在所述VLIST顶点的数量的字段的图结构。 顶点有一个名称数组作为它们的内部字段。 函数我得到一个错误,需要一个图形和一个字符串,并将一个顶点添加到该图形中,该字符串作为顶点的名称。 下面是函数: int add_vertex(Graph *graph, const char name[]){

    0热度

    1回答

    很抱歉,如果这个问题是基本的,但我真的不明白为什么,如果我不添加“+ 1”节目不打印所有的字母 a = realloc(a,sizeof(char)*(i + 1)); 以及在这里 *(A + I)= letra; “a”的位置在每次通过时是否变大? 我认为情况并非如此,但我不太确定。 #include <stdio.h> #include <stdlib.h> char *copiarFr

    1热度

    2回答

    目前我在下面有下面的代码。 char **arr最初设置为NULL。然后在从文件读取时以文字形式存储。我只是随机选择了一个像5000这样的大数字,因为我不知道如何正确地做malloc业务,即使在网上查找并尝试学习之后。 而且,当我尝试freechar **arr(我的代码的最后一节),有时我得到segmentation faults,有时abort traps等。如果有人可以告诉我怎么做这样的事情