gpt4 book ai didi

c - C中是否有从其指针查找结构类型的规定

转载 作者:太空狗 更新时间:2023-10-29 15:45:53 26 4
gpt4 key购买 nike

如果我们有两种类型的结构,比如 apple 和 orange,它们的实例分别为 a1 和 o1,那么我们有一个指向 void 类型的指针,那么有没有办法知道它指向什么类型的结构?...

最佳答案

并非没有大量的黑客攻击。如果您可以控制源代码,可以想象您可以将这些信息放入结构中:

typedef enum {
STRUCT_TYPE_APPLE,
STRUCT_TYPE_ORANGE
} _struct_type;

typedef struct {
_struct_type type;

/* Your "apple" data */
} apple;

typedef struct {
_struct_type type;

/* Your "orange" data */
} orange;

然后您可以在调试期间转换为适当的类型并检查 type 的值。当然,这充满了脆弱性。值得注意的是,如果您不确定要获取哪种类型的结构,则转换和检查 type 很可能会为您提供与 STRUCT_TYPE_APPLESTRUCT_TYPE_ORANGE

关于c - C中是否有从其指针查找结构类型的规定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20614051/

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