C - 更改通过引用传递给函数的结构的值

标签 c structure

下面的代码返回“错误:请求成员‘height’不是结构或 union ”。在调用 doStuff 之后,我希望看到 bob 的高度从 4 变为 5。谁能告诉我为什么这不起作用?谢谢!

#include <stdio.h>
#include <stdlib.h>

struct person{
    int height;
    int weight;
};

void doStuff(struct person *chris);

int main(){

    struct person bob = {4,4};
    doStuff(&bob);
    printf("%d", bob.height);

    return 0;
}

void doStuff(struct person *steve){

    steve.height = 5;
}

最佳答案

steve 是一个指向结构的指针,所以不是

steve.height = 5;

尝试

steve->height = 5;

或者更麻烦一点

(*steve).height = 5;

关于C - 更改通过引用传递给函数的结构的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26153920/

相关文章:

c - 从二进制文件中读取C编程

c++ - 向窗口应用程序发送 WM_CHANGEUISTATE 后,当使用鼠标访问菜单时,助记符不会显示在系统菜单上

c++ - 结构数组有什么问题?

c++ - union 工作不正常

c - 使用 void 指针和计算的偏移量为结构成员赋值

c - AES 加密 - 大文件

c++ - TUN/TAP 上的 C 编译器错误

c - 使用c对链表进行选择排序

c - 二进制 * 的无效操作数(有 ‘ab {aka struct a}’ 和 ‘ab * {aka struct a *}’ )

c++ - 在 C++ 中创建堆上的结构数组