【发布时间】:2013-12-06 01:18:08
【问题描述】:
在 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;
}
一切正常,直到我尝试更改结构的元素。
错误消息为:error: incompativle types when assignin to type 'char[20]' from type 'char *'
你能告诉我一个应该如何在这里使用指针的例子吗? 感谢您的帮助!
【问题讨论】:
-
这不是“离题”。它应该只是 `scanf("%s", player->playername);` 而不是
scanf("%s", &player->playername);。scanf想要一个char*,而player->playername已经是一个char*,你不能引用它。
标签: c function pointers struct scanf