当前位置: 代码迷 >> C语言 >> 结构指针在复值时的问题
  详细解决方案

结构指针在复值时的问题

热度:219   发布时间:2007-08-14 19:02:22.0
结构指针在复值时的问题

#include "stdio.h"
#include "malloc.h"

typedef struct node
{
int row;
int col;
int data;
struct node *right,*down;
}lnode,*link;

typedef struct
{
lnode *rhead,*chead;
int mu,nu,tu;
}crosslist;

crosslist M;
crosslist N;
crosslist Q;

main()
{
int i;
printf("row:");
scanf("%d",&M.mu);
printf("col:");
scanf("%d",&M.nu);
N.mu=M.nu;
N.nu=M.mu;
M.rhead=(lnode *)malloc((M.mu+1)*sizeof(lnode));
M.chead=(lnode *)malloc((M.nu+1)*sizeof(lnode));
N.rhead=(lnode *)malloc((N.mu+1)*sizeof(lnode));
N.chead=(lnode *)malloc((N.nu+1)*sizeof(lnode));
for(i=0;i<M.mu+1;i++)
{
M.rhead[i]=NULL;
}
}

为什么
for(i=0;i<M.mu+1;i++)
{
M.rhead[i]=NULL;
}
不能通过。。。高手请帮忙明示下拉~~~~

搜索更多相关的解决方案: 指针  结构  

----------------解决方案--------------------------------------------------------
这是因为M.rhead[i]=NULL;本身就是错的,rhead不是个数组~!~
----------------解决方案--------------------------------------------------------

但不是在使用指针动态分配内存时可以用这种方法的吗??
不是有想
int *p;
p=(int *)malloc(5*sizeof(int));
p[3]=5;
这样不是可以的嘛。。。。


----------------解决方案--------------------------------------------------------
先搞清楚M.rhead[i]是什么类型
----------------解决方案--------------------------------------------------------
那如果我要把这些开辟出来的内存空间全变成NULL,以后存放LNODE类型指针的地址要怎么做捏??难道不是这样的吗??
----------------解决方案--------------------------------------------------------
你先告诉我M.rhead[i]是什么类型
----------------解决方案--------------------------------------------------------
M。RHEAD是LNODE结构类型的指针。。。。
----------------解决方案--------------------------------------------------------
算了我告诉你吧,M.rhead[i]是struct node类型,M.rhead[i]=NULL这句类型不匹配,所以通不过编译
----------------解决方案--------------------------------------------------------
那要怎么才能实现我想要的??
----------------解决方案--------------------------------------------------------

把M.rhead声明为link*类型


----------------解决方案--------------------------------------------------------
  相关解决方案