| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 690 人关注过本帖
标题:求组:关于指针数组的用法
只看楼主 加入收藏
joulejcc
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-12-24
收藏
 问题点数:0 回复次数:2 
求组:关于指针数组的用法

先给大家看个程序:
#include<stdio.h>
#include<string.h>
#define MAX 5
typedef struct
{
char num[5];
char name[20];
}NODE;

void print(NODE *a[])
{
int i;
for(i=0;strcmp(a[i]->num,"NULL")!=0;i++)
printf("%s %s\n",a[i]->num,a[i]->name);
printf("input a[2]\n");
scanf("%s%s",a[2]->num,a[2]->name);
}

void main()
{
NODE *p[MAX];
int i;
int c;
for(i=0;i<MAX;i++) /*初始化指针数组p[MAX]*/
strcpy(p[i]->num,"NULL");
printf("Input the information:\n");
for(i=0;i<2;i++)
scanf("%s%s",p[i]->num,p[i]->name);
print(p);
for(i=0;i<3;i++)
scanf("%s%s",p[i]->num,p[i]->name);
scanf("%d",&c);
getch();
}
我想在print()函数中通过a[2]->num,a[2]->name修改p[2]->num,p[2]->name的值.因为我看到书上说在调用函数时,数组是传递的地址,就是说p[MAX]和a[]这两个数组共用一段内存.但是我怎么运行也行,麻烦大家指教一下.谢谢!

搜索更多相关主题的帖子: 指针 用法 NODE MAX void 
2005-12-25 11:30
wanglff
Rank: 2
等 级:新手上路
威 望:5
帖 子:375
专家分:0
注 册:2005-12-21
收藏
得分:0 

a[2]->num,a[2]->name是一个局部的变量
出了printf函数就不存在了
改写这样看下:
printf("input a[2]\n");
scanf("%s%s",&a[2]->num,&a[2]->name);
给一个地址引用就可以了~!


自强不息:)
2005-12-25 17:16
黑白格子布
Rank: 1
等 级:新手上路
威 望:1
帖 子:67
专家分:0
注 册:2005-12-11
收藏
得分:0 
scanf("%s%s",&a[2]->num,&a[2]->name);

这个这个?不是都是数组名吗,要用取址符的吗????

2005-12-25 23:47
快速回复:求组:关于指针数组的用法
数据加载中...
 
   



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

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