【发布时间】:2021-09-22 23:33:26
【问题描述】:
char* 的大小是多少,或者我如何获得它的大小?会不会是
sizeof(char)
或
sizeof(char[])
我问这个是因为我正在尝试创建一个数据结构(队列),将char* 作为其数据类型,并且对于队列的初始化/创建,我需要传入数据类型的大小作为参数。如果是整数:
queue* q = createQueue(sizeof(int))
我该如何为char* 做这样的事情?像这样的东西会起作用还是我有错误的想法?我是否需要使用char**,但我相信队列的实现需要更改,因为我正在遵循我在 GitHub 上找到的通用队列实现。
【问题讨论】:
-
你试过
sizeof(char*)吗?.. -
拥有 sizeof(pointer) 是否有效? Tbh我只是认为这不起作用,所以我只是排除了它。但如果它是有效的,那么我猜就是这样?
-
如果您想知道
char*的大小,这似乎是您要问的问题,那么除了sizeof(char*)之外还有什么答案?或者你想知道char*指向的length of the string,这是另一回事吗? -
是的,使用
sizeof判断指针的大小是有效的,所以sizeof(char *)就是你想要的。 -
Re "拥有 sizeof(pointer) 是否有效?",嗯,
pointer在 C 中没有内在意义,但如果它是指针类型的占位符,它绝对是有效的。只分配一个指针会有点奇怪,但是指针数组呢?这其实很常见。你需要知道指针的大小才能做到这一点。