【发布时间】:2012-03-07 19:42:21
【问题描述】:
以下代码 sn-p 会导致大 MAXV 值出现内存错误。我如何定义这个结构,以便我可以将它用于边缘和度数中的许多值?
#define MAXV 1441295
typedef struct {
edgenode *edges[MAXV+1];
int degree[MAXV+1];
int nvertices;
int nedges;
int directed;
} graph;
initialize_graph(graph *g, bool directed)
{
int i;
g -> nvertices = 0;
g -> nedges = 0;
g -> directed = directed;
for (i=1; i<=MAXV; i++) g->degree[i] = 0;
for (i=1; i<=MAXV; i++) g->edges[i] = NULL;
}
【问题讨论】:
-
编译时错误有哪些问题?运行时错误?
-
那个 sn-p 不能导致内存错误,它只创建一个类型,而不是任何变量。请提供一个完整的最小程序来演示您遇到的错误。 sscce.org
-
它会产生什么内存错误?该程序不会导致编译时错误。如果您没有足够的内存,它可能会导致运行时错误。
-
什么样的内存错误?你是在栈上分配还是在堆上分配?
-
我添加了分配方式