打印结构指针c

问题描述

我正在尝试在下面打印函数的结果

void add_Votes(struct Votes* v1,struct Votes* v2) {
    v1->men += v2->men;
    v1->women += v2->women;
}

使用这组代码

add_Votes(all,michigan);
    printf("all->men: %d\n",&(all->men);

这里是所有需要的变量和结构

struct Votes {
    int men;
    int women;
};
struct Votes *michigan = {200,300};
struct Votes *all = {0,0};

我尝试将&放置在printf中的强制类型之前,但在第二个printf之后,它将显示指针的地址 当我不带&打印时,它什么也不显示

如果应该将其作为指针,我应该怎么做 如果我从打印品中删除&,它会显示一系列数字,我猜是地址,但是我需要该值 它说1303720之类的东西,当我需要为200之类的时候

解决方法

您的变量声明错误。它们应该是结构,而不是指针。

struct votes michigan = {200,300};
struct votes all = {0,0};

然后将结构的地址传递给函数:

add_votes(&all,&michigan);
printf("all.men: %d\n",all.men);