| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 474 人关注过本帖
标题:对指针数组的每个元素为头指针建立链表 出错!!
只看楼主 加入收藏
zzzwwwxxx123
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-6-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
对指针数组的每个元素为头指针建立链表 出错!!
#include<stdlib.h>
#include <stdio.h>
#include<string.h>

#define NAME_LENGTH 30 //姓名的个数
struct name //定义姓名结构体
{
 char *pinyin; //名字所对应的拼音
 //int key; //经过哈希函数计算得到的哈希表的 关键字 key
 struct name  *next;
};typedef name *pname;//声明指向此结构体的指针
name NameList[NAME_LENGTH]; //声明姓名数组
void initializename() //函数 initialize_name 是初始化姓名数组,即为姓名赋初值
{
 NameList[0].pinyin="liyan";
 NameList[1].pinyin="huxi";
 NameList[2].pinyin="gaoxi";
 NameList[3].pinyin="chaiwanying";
 NameList[4].pinyin="zhangzhongqi";
 NameList[5].pinyin="niuzihan";
 NameList[6].pinyin="lifuhao";
 NameList[7].pinyin="xiujingyang";
 NameList[8].pinyin="yangzhiyong";
 NameList[9].pinyin="zhangjianpeng";
 NameList[10].pinyin="dubingshuai";
 NameList[11].pinyin="zhulei";
 NameList[12].pinyin="xuhaiyong";
 NameList[13].pinyin="zhengxupeng";
 NameList[14].pinyin="gaoxuekai";
 NameList[15].pinyin="xuxi";
 NameList[16].pinyin="fanghaojie";
 NameList[17].pinyin="tuyaohui";
 NameList[18].pinyin="lujinxin";
 NameList[19].pinyin="zhangxiaoyu";
 NameList[20].pinyin="xuhao";
 NameList[21].pinyin="ouyangxu";
 NameList[22].pinyin="chendanbo";
 NameList[23].pinyin="linshuyuan";
 NameList[24].pinyin="weiminglun";
 NameList[25].pinyin="zhangsan";
 NameList[26].pinyin="lisi";
 NameList[27].pinyin="wangwu";
 NameList[28].pinyin="zhaoliu";
 NameList[29].pinyin="sunqi";

}
 void   insertHash()
 {   
    int key,j,i;
    pname  p;
    pname zhizhenshuzu[9]; //指针数组 其每个元素都是pname格式的指针变量用于存放指针。
       for(i=0;i<=8;i++)//初始化
       {
            zhizhenshuzu[i]=NULL;//指针数组,元素未赋值,系统为他赋值随机数
       }
      
         for(j=0;j<=29;j++)
  {        
         
  
         
      
         if(zhizhenshuzu[j%9]==NULL)
  {      
         
         zhizhenshuzu[j%9]=(pname)malloc(sizeof(name));
         zhizhenshuzu[j%9]->pinyin=NameList[j].pinyin;
        printf("数组指针%d指向的第一个节点%d \n",j%9,*(zhizhenshuzu[j%9]->pinyin));
       // 不可 *(zhizhenshuzu[j%9]).pinyin=NameList[j].pinyin;
        //否则会导致  error: request for member `pinyin' in `zhizhenshuzu[(j % 9)]'
        // which is of non-class type `name*'
  }//if
         
  else{
        
   
    p=zhizhenshuzu[j%9];
          while(p!=NULL)
   {
         p=p->next;
   }//while 程序在这个地方过不去!!
     p=(pname)malloc(sizeof(name));
      p->pinyin=NameList[j].pinyin;
        
      printf ("第%d个位置的链表中的pinyin为%d  \n ",j,*(p->pinyin));
    }

 }//for
 
 }
   int main()
   {
    initializename();
     insertHash();
   
   }

运行结果:
数组指针0指向的第一个节点108
数组指针1指向的第一个节点104
数组指针2指向的第一个节点103
数组指针3指向的第一个节点99
数组指针4指向的第一个节点122
数组指针5指向的第一个节点110
数组指针6指向的第一个节点108
数组指针7指向的第一个节点120
数组指针8指向的第一个节点121
okPress any key to continue
搜索更多相关主题的帖子: 结构体 pinyin include 姓名 
2012-06-17 20:14
jokerskill
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:392
专家分:554
注 册:2012-3-4
收藏
得分:20 
哦,你是新手嘛?
这些代码我都不会,
你从简单的开始不是更好嘛!!
2012-06-17 20:37
快速回复:对指针数组的每个元素为头指针建立链表 出错!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019350 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved