8.4 结构体二级指针

结构体二级指针:二级指针是保存指针变量的地址的变量,可以通过主函数的指针变量,用二级指针引入到函数形参中对指针进行操作。

#include 
#include 
#include 

struct candidate
{
	char name[32];
	int tickets;
};
void  initMans(struct candidate **pMans,int *p)
{
	
	int i;
	
	if(*pMans == NULL){
		printf("请输入有几个候选人:\n");
		scanf("%d",p);
		*pMans = (struct candidate*)malloc((*p) * sizeof(struct candidate));
		
	}
	for(i=0;i<*p;i++){
		(*pMans)->tickets = 0;
		printf("请输入第%d个选民的名字:\n",i+1);
		scanf("%s",(*pMans)->name);              //括号括起来,保证代码的优先级
		(*pMans)++;
	}
	*pMans = *pMans -*p;
}

int main()
{
	
	int i;
	struct candidate *Mans = NULL;
	struct candidate* max;
	int total = 0;
	
	initMans(&Mans,&total);
	
	
	
	int abstention =Vote(Mans,total);
	printf("废票数是:%d\n",abstention);
	printCandidate(Mans,total);
	
	max =getMax(Mans,total);
	printf("恭喜%s以%d票当选!\n",max->name,max->tickets);
	return 0;
}

你可能感兴趣的:(c语言)