gpt4 book ai didi

c - 我如何操纵位从0x00到0x34,以便创建由这些值表示的卡座

转载 作者:行者123 更新时间:2023-11-30 20:30:02 25 4
gpt4 key购买 nike

编写一个函数,使用前面问题中使用的相同定义来创建存储在数组中的一副纸牌。阵列中每个套件将有一张卡。
笔记:
•您必须malloc()返回数组的存储空间

下面是一个代码片段,显示了调用该函数并在卡座中打印第51张卡的十六进制值。

    14     char * c; 
15 c = make_deck();
16 printf(" %x\n",*(c+50));


我的代码

    1 char *make_deck()
2 {
3 int i=0;
4 char *deck;
5 deck= (char *)malloc(sizeof(char)*52);
6
7 if (deck==NULL)
8 {
9 printf(“malloc of size %d failed!”,52);
10 }
11 for(i=0;i<52;i++)
12 {
13 *deck= 0x00;
14 }

最佳答案

变量i在循环中已经从0(0x00)递增到52(0x34)。您可以为其分配*(deck + i)deck[i]):

#define DECK_SIZE 52

char *make_deck()
{
char i;
char *deck;

deck = malloc(sizeof(char) * DECK_SIZE);

if (deck == NULL) {
printf("malloc of size %d failed!", DECK_SIZE);
return NULL; // stop if malloc failed
}

for (i = 0; i < DECK_SIZE; ++i)
deck[i] = i;

return deck;
}

关于c - 我如何操纵位从0x00到0x34,以便创建由这些值表示的卡座,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55486660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com