gpt4 book ai didi

c - 格式化代码以访问结构类型的数组索引

转载 作者:太空宇宙 更新时间:2023-11-04 05:55:23 26 4
gpt4 key购买 nike

我在 C 中有以下代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
typedef struct sample {
int num;
} abc;

typedef struct exmp{
abc *n1;
} ccc;

abc *foo;
foo = (abc*)malloc(sizeof(foo));
ccc tmp;
tmp.n1 = foo;

ccc stack[10];

stack[0] = tmp;
printf("address of tmp is %p\n",&tmp);
// need to print address contained in stack[0]

return 0;
}

在上面的代码中,我想检查 stack[0] 的地址是否与 tmp 的地址相同。如何在打印出 tmp 的地址时在 stack[0] 处打印地址?

最佳答案

很简单,就这么做

printf("address of tmp is %p and address of stack[0] %p\n",
(void *)&tmp, (void *)&stack[0]);

实际上这会起作用

printf("address of tmp is %p and address of stack[0] %p\n", 
(void *)&tmp, (void *)stack);

此外,Do not cast malloc() ,并始终检查返回值是否不是 NULL,即它是一个有效的指针。

关于c - 格式化代码以访问结构类型的数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28513705/

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