当我不知道需要的数据类型时该怎么办?

用户名

我正在尝试使用数据结构和算法创建自己的库。问题是我不知道该数据变量使用哪种类型。总有一天,我可能需要使用它来保存整数,而另一些则需要使用字符串。知道该怎么办吗?

例子:

typedef struct tree{
    int data;
    struct tree *left;
    struct tree *right;
}tree;

但是,如果我想使用字符串,是否应该手动更改数据类型,或者是否可以通过其他方式声明数据?

Utkan Gezer

我说的可能只是胡说八道,但这是我的想法:工会呢?

typedef struct tree{
    union {
        int i;
        char * c;
    } data;
    struct tree *left;
    struct tree *right;
}tree;

这不是您或多或少想要拥有的东西吗?一块内存,可以用作intchar *让我简要地解释一下什么是a unionunion创建变量时,它的内存位置与内部的最大内存位置一样大。由于并集内的所有子变量都将使用相同的内存位置,因此它们将相互覆盖。

例如,如果我要tree直接从上面创建一个东西,就像这样:

tree asd;

我可以通过data以下方式使用内部存储整数:

asd.data.i = 123;

然后,我可以在左侧很好地创建一个分支,并在其中存储一个字符串:

asd.left = malloc( sizeof asd );
asd.left->data.c = malloc( 10 );
memcpy( asd.left->data.c, "kek", 4 );

如果您不喜欢data介于两者之间,则可以忽略它!但是首先,您也必须从声明中忽略它。

typedef struct tree{
    union {
        int i;
        char * c;
    };          // <-- removed the data
    struct tree *left;
    struct tree *right;
}tree;

然后,您可以访问两者ic而无需写信data.

我希望所有这些都不是胡说八道,并且实际上会变得有用,嘿。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有人可以帮忙吗,当我们有“价值”而我们不知道“价值”如何构成时该怎么办?

Kotlin:返回泛型类型的函数。如果我不知道应该返回哪种具体类型该怎么办?

我的CNN Keras预测不正确,我也不知道该怎么办

我有此错误,我不知道该怎么办

Apple Mach-O Linker错误,我不知道该怎么办

Mysql不知道触发器,我该怎么办?

vlookup中的数据不可用错误:不知道该怎么办

每当我尝试运行此代码时,都会出现类似“错误:在行附近解析错误”的错误消息,但我不知道该怎么办?

我的 Jupyter 笔记本显示错误“连接到内核”。我不知道该怎么办?

如果在不知道变量类型的情况下必须声明变量,该怎么办?

使用特定的DLL库时,内存分配非常高。可能是。不知道该怎么办

当我需要自我参照字典时该怎么办?

以div为中心;不知道该怎么办

PyGObject MessageDialog-PyGTKDeprecationWarning-不知道该怎么办

弄乱了gitlab权限,现在不知道该怎么办

用户返回nil。不知道该怎么办

不知道该怎么办一个纯PHP页面

我想每页只显示10行。但是我不知道怎么办?

reducer 中的函数正在影响错误的状态属性。我知道为什么但我不知道该怎么办

当我获取图像数据然后放入图像 toList 时该怎么办?

如果不知道Zsh的键绑定怎么办?

我需要更新数据库该怎么办?

Objective-C中的异步编程:我觉得这里有重复的代码,我不知道该怎么办

Hibernate 异常“PropertyValueException:not-null 属性引用了 > null 或瞬态值”。我被卡住了,不知道该怎么办

当我需要在打字稿泛型中使用 `any` 时该怎么办?

Java 11:错误:java:无效的源发行版:11-不知道该怎么办

'list'和'int'的实例之间不支持'<='。初学者,不知道该怎么办

当我运行我的代码时,会弹出: Event { isTrusted: [Getter] } 我该怎么办?

当我得到 int object is not iterable 时我该怎么办?