问题标签 [sizeof]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
2121 浏览

c++ - 确定多态 C++ 类的大小

使用sizeof运算符,我可以确定任何类型的大小——但是如何在运行时动态确定多态类的大小?

例如,我有一个指向 an 的指针Animal,我想获取它指向的实际对象的大小,如果它是 aCat或 a ,这将是不同的Dog。有没有一种简单的方法可以做到这一点,除了创建一个虚拟方法Animal::size并重载它以返回sizeof每个特定类型的方法吗?

0 投票
4 回答
1018 浏览

c++ - C ++中的Sizeof以及如何计算指针长度?

有人可以为我解释以下代码片段吗?

我的问题是 sizeof(rowbuf) 的结果是什么?是 DataObj 的长度还是 Byte* 的长度?为什么?

另一个问题:为什么需要计算指针的偏移量?它的一般用途是什么?

sizeof(working_addr) 等于多少?

0 投票
6 回答
2100 浏览

c++ - C/C++:各种编译器/平台的内置类型的大小

我在哪里可以获取有关在Mac OS X(32 位和 64 位)unsigned int下编译的大小的信息?gcc一般来说,我很想拥有一个可以使用编译器/设置/平台/类型的资源,并且能够查看该类型的大小。有谁知道这样的事情?

更新:感谢所有回复。我希望在某处拥有更多类似于静态表的内容,而不是我必须在每台机器上编写和运行的一段代码。

0 投票
5 回答
538 浏览

c - 使用 sizeof(type[1234]) 有什么问题吗?

我多年来一直在使用它,即:

代替:

人们告诉我这很危险,但没有人能说出原因。我检查了 C 规范,它是合法的。这里有什么陷阱吗?

0 投票
8 回答
10425 浏览

c - 关于 malloc 和 sizeof 的新手问题

有人可以向我解释为什么我对字符串大小为 6 的 malloc 调用返回的 sizeof 为 4 个字节吗?事实上,我给 malloc 的任何整数参数都会得到 4 的 sizeof。接下来,我试图复制两个字符串。为什么我的复制字符串的输出是(NULL)?以下是我的代码:

0 投票
3 回答
830 浏览

c - C 标准 malloc'ing 字符的潜在问题

当在这里回答我的另一个答案的评论时,我发现我认为可能是 C 标准中的一个漏洞(c1x,我没有检查过早期的标准,是的,我知道我独自一人在所有星球的居民在标准中发现了一个错误)。信息如下:

  1. 第 6.5.3.4 节(“sizeof 运算符”)第 2 段状态"The sizeof operator yields the size (in bytes) of its operand"
  2. 该节第 3 段规定:"When applied to an operand that has type char, unsigned char, or signed char, (or a qualified version thereof) the result is 1".
  3. 第 7.20.3.3 节描述void *malloc(size_t sz)但它所说的只是"The malloc function allocates space for an object whose size is specified by size and whose value is indeterminate". 它根本没有提到参数使用什么单位。
  4. 附件 E 开头的 8 是最小值CHAR_BIT因此字符的长度可以超过一个字节。

我的问题很简单:

在一个 char 为 16 位宽的环境中,将malloc(10 * sizeof(char))分配 10 个字符(20 个字节)还是 10 个字节?上面的第1点似乎表示前者,第2点表示后者。

任何比我拥有更多 C-standard-fu 的人对此有答案吗?

0 投票
5 回答
3915 浏览

c++ - 有没有办法仅通过类型来获取向量的字节大小?

如何预测向量的大小?

0 投票
10 回答
6200 浏览

c - sizeof 运算符在 C 中接受哪些参数?

[原标题提到'sizeof函数'。]

我尝试了这些,它们都起作用了:

我想知道为什么第一个 printf 是 1,第二个和第三个是 4?那么 sizeof 实际上可以接受哪些参数呢?

0 投票
3 回答
102654 浏览

c - C sizeof char* 数组

我有一个char*数组如下:

如何使用sizeof运算符获取数组的元素个数,这里是 3?

以下确实有效,但它正确吗?

0 投票
5 回答
28697 浏览

c - 获取指针数据的大小

我尝试了以下代码以查看如何获取指针数据的大小:

代码的输出是(在 32 位 gcc 4.3 上):

我认为 sizeof(*test_char_ptr) 会给我 *test_char_ptr 内的数据大小。但相反,它给了我 1 ,我认为这是 sizeof char 而不是数据。test_int_ptr 也是如此。长话短说,我的问题是如何在指针或动态内存分配的数组中获取 sizeof 数据。