gpt4 book ai didi

c - 如何使用malloc或其他函数在Ram中分配所需的地址?

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

我在 C 语言面试中被问到一个问题。问题是: 我可以更改地址吗?

结构节点*根;root=(int*)malloc(sizeof(int));

printf("%d",root) =10128000//新地址:root=101590000

最佳答案

C 标准库的分配函数都不允许您指定要分配空间的地址。这样做是没有意义的,因为程序员不太可能知道或关心他们得到的具体地址,除非他们知道的东西已经存在,在这种情况下它不是一个可用的地址。

但是,您可以分配一个大块(例如通过malloc),然后根据需要手动分配该 block 的 block 。这允许您选择相对于分配 block 的基址的自己的地址。例如:

my_node *node_base = malloc(AS_MUCH_MEMORY_AS_I_NEED);

// ...

// malloc analog:
size_t an_index = choose_a_node_index_by_some_criteria();
my_node *node = node_base + an_index;

// free analog:
mark_index_available_again(an_index);

当然,细节决定成败,这些都是特定于您的需求的,而且比我准备在这里讨论的更复杂。总的来说,这并不是一个自称初学者真正应该尝试做的事情。

关于c - 如何使用malloc或其他函数在Ram中分配所需的地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55773810/

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