第二个malloc过不去
EdgeNode *p;EdgeNode *q;
p = (EdgeNode *)malloc(sizeof(EdgeNode));
p->data = 1;
p->next = NULL;
q = p;
G->first = p;
p = (EdgeNode *)malloc(sizeof(EdgeNode));
p->data = 2;
p->next = NULL;
q->next = p;
q = p;
这一小段代码,调试到第二个malloc哪里,就终止了
而且还说 未找到memset.asm 求助啊,求助
ggggggg:sad G->first = p;
这一句是啥 戏++ 发表于 2014-7-30 16:58
G->first = p;
这一句是啥
typedef struct EdgeNode
{
int data;
struct EdgeNode *next;
}EdgeNode,*Edge;
typedef struct VertexNode
{
int in;
char data;
EdgeNode *first;
}VertexNode;
typedef VertexNode Graph;
我定义了一个G 的数组 用来存放结点 全部的代码 如下:
#include <stdio.h>
#include <stdlib.h>
typedef struct EdgeNode
{
int data;
struct EdgeNode *next;
}EdgeNode,*Edge;
typedef struct VertexNode
{
int in;
char data;
EdgeNode *first;
}VertexNode;
typedef VertexNode Graph;
void CreatGraph(Graph *G)
{
G = (Graph *)malloc(14 * sizeof(VertexNode));
G->data = 'a';
G->data = 'b';
G->data = 'c';
G->data = 'd';
G->data = 'e';
G->data = 'f';
G->data = 'g';
G->data = 'h';
G->data = 'i';
G->data = 'j';
G->data = 'k';
G->data = 'l';
G->data = 'm';
G->data = 'n';
G->data = 'o';
G->in = 0;
G->in = 2;
G->in = 2;
G->in = 2;
G->in = 1;
G->in = 1;
G->in = 3;
G->in = 1;
G->in = 1;
G->in = 2;
G->in = 1;
G->in = 1;
G->in = 0;
G->in = 1;
G->in = 1;
int i;
for (i = 0; i < 15; i++)
{
G->first = NULL;
}
Edge p, q;
p = (Edge)malloc(sizeof(EdgeNode));
p->data = 1;
p->next = NULL;
q = p;
G->first = p;
p = (Edge)malloc(sizeof(EdgeNode));
p->data = 2;
p->next = NULL;
q->next = p;
q = p;
p = (EdgeNode *)malloc(sizeof(EdgeNode));
p->data = 3;
p->next = NULL;
q->next = p;
q = p;
p = (EdgeNode *)malloc(sizeof(EdgeNode));
p->data = 5;
p->next = NULL;
q = p;
G->first = p;
p = (EdgeNode *)malloc(sizeof(EdgeNode));
p->data = 6;
p->next = NULL;
q->next = p;
q = p;
p = (EdgeNode *)malloc(sizeof(EdgeNode));
p->data = 7;
p->next = NULL;
q->next = p;
q = p;
p = (EdgeNode *)malloc(sizeof(EdgeNode));
p->data = 8;
p->next = NULL;
q->next = p;
q = p;
p = (EdgeNode *)malloc(sizeof(EdgeNode));
p->data = 7;
p->next = NULL;
q = p;
G->first = p;
p = (EdgeNode *)malloc(sizeof(EdgeNode));
p->data = 6;
p->next = NULL;
q = p;
G->first = p;
p = (EdgeNode *)malloc(sizeof(EdgeNode));
p->data = 10;
p->next = NULL;
q->next = p;
q = p;
p = (EdgeNode *)malloc(sizeof(EdgeNode));
p->data = 11;
p->next = NULL;
q = p;
G->first = p;
p = (EdgeNode *)malloc(sizeof(EdgeNode));
p->data = 13;
p->next = NULL;
q = p;
G->first = p;
p = (EdgeNode *)malloc(sizeof(EdgeNode));
p->data = 3;
p->next = NULL;
q->next = p;
q = p;
p = (EdgeNode *)malloc(sizeof(EdgeNode));
p->data = 14;
p->next = NULL;
q = p;
G->first = p;
p = (EdgeNode *)malloc(sizeof(EdgeNode));
p->data = 3;
p->next = NULL;
q->next = p;
q = p;
p = (EdgeNode *)malloc(sizeof(EdgeNode));
p->data = 2;
p->next = NULL;
q->next = p;
q = p;
p = (EdgeNode *)malloc(sizeof(EdgeNode));
p->data = 4;
p->next = NULL;
q = p;
G->first = p;
}
void Topo(Graph *G)
{
Graph temp;
int i;
for (i = 0; i < 15; i++)
{
temp.in = G->in;
temp.data = G->data;
temp.first = G->first;
}
int j,temp_in;
EdgeNode *p;
for (i = 0; i < 15; i++)
{
for (j = 0; j < 15;j++)
{
if (temp.in == 0)
{
printf("->%c", temp.data);
p = G->first;
while (p)
{
temp_in = p->data;
temp.in--;
p = p->next;
}
}
}
}
}
int main(void)
{
Graph G;
CreatGraph(&G);
Topo(&G);
return 0;
} 求助 为什么你们的编辑器能随便定义呢不是能能定义在函数体开头么 千寻0 发表于 2014-8-1 11:15
为什么你们的编辑器能随便定义呢不是能能定义在函数体开头么
什么意思呢,看不太懂 cfy137000 发表于 2014-8-1 16:18
什么意思呢,看不太懂
我是取经的 你中间定义的那 个i,j,temp-n等的我VC6++就会报错只能定义在函数体开头
你是用什么编写的? 千寻0 发表于 2014-8-1 16:32
我是取经的 你中间定义的那 个i,j,temp-n等的我VC6++就会报错只能定义在函数体开头
你是用什么编写的?
用的是vs2013~ 千寻0 发表于 2014-8-1 16:32
我是取经的 你中间定义的那 个i,j,temp-n等的我VC6++就会报错只能定义在函数体开头
你是用什么编写的?
你用VC6建立的源文件后缀名是.c,如果改为.cpp(即C++),那就可以在中间定义变量了 沉默默 发表于 2014-8-2 16:54
你用VC6建立的源文件后缀名是.c,如果改为.cpp(即C++),那就可以在中间定义变量了
哦 这么回事啊
页:
[1]