c - 关于使用 size_t

标签 c

假设我想使用循环初始化一个字符数组,使用 'x' 字符,我应该使用 int 还是 size_t?

char *pch = (char *) malloc(100);
for (size_t s = 0; s < 100; s++)
    pch[s] = 'x';

注意:我知道 memset 和其他“技巧”,我的问题只是关于 int VS size_t

最佳答案

由于变量索引数组,使用 size_t 更合适,因为数组索引不能(通常)为负数。

此外,由于数组索引通常与 strlen 调用或 sizeof 运算符的结果进行比较,两者都会产生 size_t,使用 int 可以为有符号/无符号比较生成警告。

但是,如果您要将缓冲区的所有字节初始化为给定值,则应改为使用 memset:

memset(pch, 'x', 100);

关于c - 关于使用 size_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44890671/

相关文章:

c++ - 错误 LNK2019 : Unresolved External Symbol _HUGE referenced in _luaopen_math

c - 具有 SIGFPE 异常的程序在 gdb 下表现不同

c++ - 静态内存中的动态结构?

c - C 中的 exit() 函数——如果我们不写这个会发生什么?

c - 改进 C 代码

将数组元素复制到新元素 - C

javascript - 提示文件下载 C 后端

c - 从链表中删除节点时出现 SIGSEGV 段错误

C:如何将不同大小的文本文件的每一行存储到 int 数组中?

python - Ctypes读取修改后的数组