问题标签 [size-t]

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 投票
6 回答
1268 浏览

c - 为什么 size_t 更好?

标题实际上有点误导,但我想保持简短。我已经阅读了为什么我应该使用 size_t 并且我经常发现这样的陈述:

size_t保证能够表达任何对象的最大尺寸,包括任何数组

我真的不明白那是什么意思。您可以一次分配多少内存并且 size_t 保证足够大以计算该内存块中的每个字节,是否有某种上限?

追问:
什么决定了可以分配多少内存?

0 投票
2 回答
492 浏览

c - 什么决定了可以分配多少内存?

这是我之前关于为什么需要 size_t 的问题的后续。

鉴于 size_t 保证足够大以表示您可以分配的内存块的最大大小(意味着仍然可以有一些大于 size_t 的整数),我的问题是......

是什么决定了您一次可以分配多少?

0 投票
2 回答
2036 浏览

objective-c - Objective-C 运行时:class_addIvar 的大小和对齐方式是什么?

Objective-C 运行时提供了 class_addIvar C函数:

我要做什么sizealignment

我正在添加一个 type 的实例变量UITextPosition *,但范围内没有UITextPosition对象。对于size,我可以做sizeof(self),哪里self是一个子类UITextField?即,我可以假设一个UITextPosition对象与一个对象的大小相同UITextField吗?

我怎么得到alignment

0 投票
3 回答
4950 浏览

c++ - size_t 和 ptrdiff_t 类型的变量

size_t通过阅读与和相关的在线帖子ptrdiff_t,我想确认以下内容:

  1. 如果数组的最大大小小于1/2*(max number represent-able by size_t),我可以安全地使用ptrdiff_t并检查指向同一对象的两个指针之间的相对距离吗?(因为我在谈论数组,“指向同一对象的指针”意味着“指向同一数组的指针”) .

  2. 如果我想声明一个可以表示与另一个指针的偏移量的变量,我最好将它声明为 type ptrdiff_t

  3. 如何在 C 和 C++ 中输出类型size_t和变量?ptrdiff_t以下是否正确:size_t 类型变量的跨平台格式字符串?

  4. isuintptr_t只是size_tOR 的另一个名称,它应该用作独立于size_t?的类型

  5. isssize_t和OR 的intptr_t另一个名称ptrdiff_t必须以不同的方式使用?

我开始在 Ubuntu 上使用 gcc。我刚刚在使用别人的代码时发现了这些类型。

添加:我确实希望能够使用偏移量。uintptr_t和使用有什么区别intptr_t吗?

0 投票
7 回答
2229 浏览

c++ - sizeof(T) 可以产生的最大值是多少?

一开始可能会想std::numeric_limits<size_t>::max(),但如果有一个这么大的对象,它还能提供一个过去的指针吗?我猜不是。这是否意味着sizeof(T)可以产生的最大价值是std::numeric_limits<size_t>::max()-1?我是对的,还是我错过了什么?

0 投票
4 回答
108 浏览

c - 遍历从 N 到 0 的所有值(包括无符号值)

我有这段代码适用于常规有符号整数,我正在尝试编写一个与 size_t 一起使用的等效版本(因为现在开始和计数是整数,我需要它们是 size_t):

我觉得这段代码对于一个非常简单的解决方案来说足够直截了当,但我正在画一个空白。

0 投票
1 回答
1523 浏览

ios - 如何对 size_t 进行操作并最终得到 CGFloat?

为了确定缩放图像的比例,我使用了以下代码(借自Trevor Harmon 的 UIImage+Resize):

600 代表我想要的缩放图像的最大尺寸。CGImageGetWidth 和 CGI​​mageGetHeight 返回一个 size_t,根据 ARC,它在 iPhone 平台 (iOS 5) 上计算为 unsigned long。当前代码的问题是比率始终评估为 0.0000。imageRef的宽高实际上是w=768,h=780,所以比例应该是MAX(0.781, 0.769) = 0.78。我该怎么做?

PS 当我将上面的代码用于 UIImage 的 initWithCGImage:scale:orientation: 时,我发现比例的工作方式与我预期的不同:传入 0.78 的比例放大了图像。将宽度或高度除以所需的大小(如 CGImageGetWidth(imageRef) /600 等)解决了这个问题。

0 投票
3 回答
14846 浏览

c - C中size_t类型的malloc参数的限制是什么?文档说它的上限为 UINT_MAX 但我不能超过 INT_MAX

我想分配一个 2.9GB 的字符数组

这会给出一个整数溢出警告和malloc返回NULL。该 malloc参数是 type size_t,根据文档是 type unsigned int

所以最大值应该UINT_MAX是至少2.9GB。MAX_INT但是,如果我尝试分配多于malloc失败。这是否意味着 size_t在我的系统上是 int 类型?我该如何检查?我看过

但找不到 的定义size_t。非常感谢

0 投票
2 回答
1166 浏览

objective-c - 如何创建 size_t 以及如何计算大小?

我创建一个 NSData 并使用该函数

const void *因此,它返回变量中的字节。如果我手动读取内存,我会发现:

使用strlen不起作用,因为00. 但它的大小将是相同的:10 hexa lenght。因此,要手动创建 size_t,我将使用:

或者我使用了位大小:

这是正确的吗?

0 投票
2 回答
1218 浏览

c++ - 将链表的大小从 '__int64' 截断为 'size_t

我通过创建 10 个存储桶成功地编写了用于基数排序的 C++ 代码。对于 10 个存储桶,我以这种方式创建它们:

它做得很完美。

但是现在我需要将存储桶的数量增加到 100000。我尝试修改这些存储桶的大小,例如:

但这次我想我什至不能创建那些桶。我正在使用 Visual Studio 进行编码,这是用 C++ 编写的。编译器给了我这些警告:

: 警告 C4305: 'argument' : 从 '__int64' 截断到 'size_t'

: 警告 C4309: 'argument' : 截断常数值

我在网上搜了一下,有人说这个数字太大了。这是我第一次在链表中处理这么大的数字。我是否需要修改任何内容以使此代码再次工作?

谢谢你。任何想法和帮助我将不胜感激!