是否有可能从指向已分配内存的指针中检索起始地址

问题描述 投票:0回答:1

众所周知,您无法以任何标准方式检索内存块的分配大小。例如,如果您这样做:

void *ptr = malloc(100);

无法确定分配了100个字节。但是我开始怀疑是否有任何方法可以做类似的事情,那就是从指向该块的指针中检索原始指针。喜欢

void *ptr = malloc(100);
void *ptr2 = &ptr[10];

[我能以任何方式从ptr获取ptr2而不知道它指向元素10吗?

我还没有找到一个很好的用例,但是至少合理的一点是,如果您想让一个函数分配一个字符串并返回一个指向该字符串第一个数字的指针。如果可能的话,我大多只是好奇。

c pointers memory
1个回答
0
投票

是否有可能从指向分配的内存的指针中检索起始地址

没有分配的详细信息是实现的详细信息,不是C所指定的。找不到大小的便携式方法,也不能仅从指针开始。]

© www.soinside.com 2019 - 2024. All rights reserved.