struct结构的问题~!
#include "stdio.h"#include "malloc.h"
struct name_list
{
char name;
char sex;
char age;
struct name_list *next;
};
/*typedef struct name_list *usr_tab;*/
void main(void)
{
char i=0;
char *p;
struct name_list *usr_tab;
p=usr_tab=(struct name_list *)malloc(sizeof(struct name_list)*100);
printf("\n\nlist sizeof:%d\n",sizeof(struct name_list));
for(i=0;i<40;i++)
{
usr_tab->name=i;
usr_tab->age=i;
usr_tab->sex=i;
usr_tab=usr_tab->next;
}
usr_tab=p;
for(i=0;i<40;i++)
{
printf("No:%d name:%d age:%d sex:%d \n",i,usr_tab->name,usr_tab->age,usr_tab->sex);
usr_tab=usr_tab->next;
}
printf("/*------------------------------------------*/\n");
getch();
}
输出的结果总是不对,不知道错在那里了。总查不出来郁闷,前面几个输出的结果是对的但到了后面就是错的
http://cache.amobbs.com/bbs_upload782111/files_33/ourdev_585627GF86ZF.JPG
输出的结果 (原文件名:123.JPG) usr_tab=usr_tab->next;
~~~~~~~~~~~~~~~ 对了才怪,usr_tab=usr_tab->next; 如果阿莫能够更新下论坛,把代码的缩进也添加上就好了,没缩进的代码看起来很别扭。 把TAB换成空格就有缩进了。
不过标准的做法是用< pre >标签把代码包起来就行了。
<pre>#include "stdio.h"
#include "malloc.h"
struct name_list
{
char name;
char sex;
char age;
struct name_list *next;
};
/*typedef struct name_list *usr_tab;*/
void main(void)
{
char i=0;
char *p;
struct name_list *usr_tab;
p=usr_tab=(struct name_list *)malloc(sizeof(struct name_list)*100);
printf("\n\nlist sizeof:%d\n",sizeof(struct name_list));
for(i=0;i<40;i++)
{
usr_tab->name=i;
usr_tab->age=i;
usr_tab->sex=i;
usr_tab=usr_tab->next;
}
usr_tab=p;
for(i=0;i<40;i++)
{
printf("No:%d name:%d age:%d sex:%d \n",i,usr_tab->name,usr_tab->age,usr_tab->sex);
usr_tab=usr_tab->next;
}
printf("/*------------------------------------------*/\n");
getch();
}</pre> 回复【2楼】snail_z
-----------------------------------------------------------------------
usr_tab=usr_tab->next;
错在那里了,谢谢! 回复【5楼】19001579
回复【2楼】snail_z
-----------------------------------------------------------------------
usr_tab=usr_tab->next;
错在那里了,谢谢!
-----------------------------------------------------------------------
你给next赋值了吗? 也就是说链表不能先分配连续空间,在使用,只能一次分配一个记录的空间然后连接起来?? 改这样试试:
<pre> for(i=0;i<40;i++)
{
usr_tab->name=i;
usr_tab->age=i;
usr_tab->sex=i;
usr_tab->next=usr_tab+1;
usr_tab=usr_tab->next;
}</pre>
页:
[1]