c - 将结构赋予带有指针的函数

标签 c function pointers struct scanf

在 C 中,我尝试使用结构来存储播放器的当前数据,我在结构中管理这些数据:

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

typedef struct playerdat{
  char playername[20];
  int maxhp;
}playerdat;

void new_game(struct playerdat *player){

  printf("Enter your character's name: \n");
  scanf("%s", &player->playername);
  player->playername = strcpy("Little", player->playername);
}

int main(){

  struct playerdat player;
  new_game(&player);

  return 0;
}

一切正常,直到我尝试更改结构的元素。

错误消息如下:错误:从类型“char *”分配给类型“char[20]”时出现不兼容类型

您能给我举一个如何在此处使用指针的示例吗? 感谢您的帮助!

最佳答案

scanf("%s", &player->playername);//don't need &
player->playername = strcpy("Little", player->playername);//you know,the memeber `playername` is a array,`playername` is the name of the array,so you can't modify the name of a array

关于c - 将结构赋予带有指针的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20414185/

相关文章:

c - 将结构传递给函数指针 - 值更改

c - WDM驱动与用户态通信: best practices and callback questions

函数问题中的 C++ 数组赋值

c++ - C 文件中是否需要 extern "C"? (解决奇怪的 Eclipse 行为)

c - 为什么函数中设置的变量会丢失?

c - 函数中的scanf重复输入请求两次

C++:删除指向结构的指针

c++ - 与使用指针通过引用传递数组混淆

C语言将一个数组的元素范围复制到另一个数组

c - 如果我使用 static 关键字检查大小会发生什么