[英]Assign value to struct in C
我正在構建游戲,當我使用以下代碼更改2d地圖中的值時
char example[100];
strcpy(example, " ");
strcat(example, player1->unitName[j]);
strcat(example, " ");
map->map[x][y] = example;
我將示例中的整個值放在地圖更改中。
我想我將指針指向示例。
有什么辦法可以只放置示例的值而不放置地址或指針?
您應該為每個元素分配新的緩沖區,並像這樣復制內容。
char example[100], *buffer;
strcpy(example, " ");
strcat(example, player1->unitName[j]);
strcat(example, " ");
buffer = malloc(strlen(example) + 1); /* +1 for terminating null-character */
if (buffer != NULL) {
strcpy(buffer, example);
} else {
/* handle error */
}
map->map[x][y] = buffer;
您可以使用strdup()
如果系統中可用strdup()
。
char example[100];
strcpy(example, " ");
strcat(example, player1->unitName[j]);
strcat(example, " ");
map->map[x][y] = strdup(example);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.