我想知道如何测量 C 中图形的内存消耗。 使用以下代码,我用 V 节点初始化了一个没有边的图:
Graph GRAPHinit(int V)
{
int v;
Graph G = malloc(sizeof *G);
G->V = V; G->E = 0;
G->adj = malloc(V*sizeof(link));
for (v = 0; v < V; v++) G->adj[v] = NULL;
return G;
}
Graph 是一个结构体,表示为邻接表:
struct graph {
int V;
int E;
link *adj;
};
typedef struct node *link;
struct node {
int v;
link next;
};
typedef struct graph *Graph
是否可以通过 sizeof-Operator 测量 G 使用的空间量? 其他可能性?
最佳答案
不,您不能纯粹使用 sizeof-operator 来完成它,因为它只能用于编译时静态内存分配。
充其量您可以实现一个新功能,例如
unsigned int getMemoryUsage(Graph *g){
return sizeof(*G) + G->V * sizeof(link);
}
关于c - C中的内存消耗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9433572/