簡體   English   中英

在C中為struct賦值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM