先给大家看个程序:
#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[]这两个数组共用一段内存.但是我怎么运行也行,麻烦大家指教一下.谢谢!