60得票4回答
为什么数组的最大大小会“太大”?

我和这个答案持有相同的看法,即标准始终保证size_t足够大,可以容纳给定系统中最大的类型。 然而,在gcc/Mingw上,这段代码无法编译:#include <stdint.h> #include <stddef.h> typedef uint8_t array_...

13得票4回答
size_t是否保证是整数类型之一的别名类型?

或者它可以是一个单独的无符号整数类型吗? 我有针对不同(无符号)整数类型的模板函数的不同专业化。我需要为size_t提供一个单独的专业化吗?

21得票6回答
将字符串转换为size_t

有没有一种方法可以将 std::string 转换为 size_t?问题在于 size_t 是平台相关类型(尽管它是由 sizeof 的结果得出的)。因此,我不能保证将 string 转换为 unsigned long 或 unsigned int 将正确完成。 编辑: 一个简单的例子是:s...

16得票1回答
size_t的printf函数

有没有办法在不进行强制类型转换或产生编译器警告的情况下,给printf函数传递一个size_t类型的参数呢?(我总是会使用-Wall选项进行编译。)

70得票4回答
为什么size_t是无符号的?

《C++程序设计语言》中,Bjarne Stroustrup写道: unsigned整数类型非常适合将存储视为位数组的用途。为了表示正整数而使用unsigned而不是int来获得多一个比特位几乎从不是一个好主意。通过声明变量为unsigned来确保某些值为正数的尝试通常会被隐式转换规则所破...

36得票3回答
GCC Linaro编译器报错"unknown type name size_t"

我正在使用GCC Linaro编译器来编译我的代码。它报错 unknown type name size_t,报错来自于libio.h,而libio.h是从stdio.h中引用的。 在我的代码中,我只是包含了stdio.h。 有没有人能告诉我如何解决这个错误。

7得票1回答
C++标准库中的有符号size_t变量

在标准 C++ 中是否有 size_t 的带符号变体?指的是与 size_t 完全相同的位大小,但是带符号。 当然我可以这样做: #include <type_traits> using signed_size_t = std::make_signed_t<std::si...

12得票4回答
使用负整数和size_t一起是否安全?

我刚刚看到了一些C++代码。它使用条件来决定是向前还是向后遍历一个std::vector。编译器没有报错,但我认为size_t是无符号的。这样做是否危险?vector<int> v { 1,2,3,4,5 }; bool rev = true; size_t start,...

14得票5回答
使用size_t作为数组迭代器

我最近了解到,size_t的引入是为了使代码未来能够应对本地位数增加和可用内存增加。具体使用定义似乎在存储某些东西的大小,通常是一个数组。现在,我必须想知道这种未来保护措施应该走多远。如果接下来要对数组进行迭代的任务使用 unsigned int 作为索引数组,那么使用具有未来保护和适当大小的...

15得票5回答
为什么数组大小可以用 int 表示,而使用 size_t 呢?

C标准保证int类型能够存储所有可能的数组大小,至少这是我从阅读§6.5.2.1,子节1(数组下标约束)中了解到的。 引用语句如下: “其中一个表达式应具有“指向对象类型”的指针类型,另一个表达式应具有整数类型,并且结果具有“类型”类型。” 由于我们将使用int作为数组下标,那么为...