gpt4 book ai didi

c++ - 你能解释一下指针和递归结构吗

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

你能解释一下结构体中的指针的含义吗?递归结构有何用处?您能为我解释一下这段代码吗?它在内存中的表现如何?这是我的 C 代码:

struct State { 
unsigned long Out;
unsigned long Time; //ms
const struct State *Next[4];};

最佳答案

在这种情况下,Next可以在只读地址(4个不可修改的引用)中保存4个指向相同类型(struct State)对象的指针。

一个例子:

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

struct State {
unsigned long Out;
unsigned long Time; //ms
const struct State *Next[4];
};

void fn(struct State *data)
{
/* data->Next[0]->Out = 1; error: assignment of member ‘Out’ in read-only object */
for (int i = 0; i < 4; i++) {
printf("%ld %ld\n", data->Next[i]->Out, data->Next[i]->Time);
free((struct State *)data->Next[i]); /* cast to non const */
}
}

int main(void)
{
struct State data;
struct State *next;

for (int i = 0; i < 4; i++) {
next = malloc(sizeof(*next));
next->Out = i;
next->Time = i * 10;
data.Next[i] = next;
}
fn(&data);
return 0;
}

关于c++ - 你能解释一下指针和递归结构吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25156572/

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