在 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/