malloc

    1热度

    2回答

    我正试图在我的应用程序中实现基本的内存分析器(是的,我知道存在强大的外部软件)。我一直在研究一些关于如何使用分配钩子的在线示例,并且我计算了内存分配的计数部分。这只是安装一个定制的malloc与CtrSetAllocHook,看起来或多或少像下面这样: int64_t memUsage (0); int __cdecl MyAllocHook( int nAllocType,

    0热度

    1回答

    我试图学习C中的图形,此刻我试图编写一个函数,用给定的数据结构初始化图形。 所以我有结构是: typedef struct linked list{ int index; struct linked list *next; } List; typedef struct { char *name; List *outlist; int outdegree; } Node; ty

    0热度

    2回答

    因此,程序一切都很好,但我得到了一个非常恼人的内存泄漏。我坐在电脑前几个小时,可以弄明白。 我们有2个非常简单的结构,一个结构是一个双链表,一个是存储该双链表的散列表。 现在我将一个键和一个数据插入到双链表中,这里是函数。 void htable_insert(htable* ht, int key, int data) { // TODO: Insert a new entry wit

    3热度

    3回答

    我在C++代码中遇到了一个内存问题,当然我错了,但是我没有遇到问题。我已经声明了一个三指针数组来加倍和分配内存。 double *myDoubles[3]; for(int i=0;i<3;i++) { myDoubles[i]= (double *) malloc(1000*sizeof(double)); } myDoubles[2][999]=10.55; 怎么了?

    -1热度

    1回答

    我有这个结构的问题,我不明白为什么不起作用。我创建了一个具有3个值的结构,我希望这个SIZE = 100的数组。但是我对malloc感到困惑,以及它在这种情况下是如何工作的。 #define SIZE 100 typedef struct entry { long id; int r1; int r2; int r3; }; typedef str

    1热度

    1回答

    我得到了二维的动态分配表。调整表格的大小。 1)创建一个新的。 2)删除先前的指针,分配的内存。 3)分配新指针。 代码: #include <stdio.h> #include <stdlib.h> int** create(int rows, int columns) { int **tab = (int**)malloc(rows * sizeof(int*));

    0热度

    1回答

    我正在使用MPI和C进行编程,我正在使用根级别从文件中读取数据,然后将其分配给剩余的级别。我的MPI_Scatter工作正常,我打印出来的值,以确保他们是正确的(他们是)。我的问题是,在分配结构之后,如果试图从其他级别访问它们而不是根级别,则会出现故障。 pr_graph * graph = malloc(sizeof(*graph)); .... MPI_Scatter(v

    -2热度

    3回答

    我平时看到的语法,malloc分配: int **p = malloc(N*sizeof(int*)) 与p是一个指针。我也看到了以下语法(也许我的消息来源是不对的):上面的语法 int **p = malloc(N*sizeof(*int)) 的差异之间2是“明星” *第一个类型int后和之前第二个出现。 你能告诉我上面两者之间的正确语法吗?

    -1热度

    3回答

    读取时,我有一个文件串的每行的malloc误差是这种格式 key1 = value1 key2 = value2 .... 我需要提取在第三列中的字符串。我写到目前为止的代码是 fp = fopen(file, "r"); assert(fp && "checkpoint file not found \n"); char **data = (char **) mal

    1热度

    2回答

    对于学校,我必须用单元格初始化映射。 在与Valgrind分析我的代码时,我遇到了一些问题。 我以前使用的初始化函数工作,但添加两个额外的整数指针和一个整数后停止运作。内存是动态分配的,并且该错误出现在之前也存在的部分中,这让我难倒了。发生的错误是如下: ==4877== Invalid write of size 4 ==4877== at 0x401723: initialize_map (