假设我想使用循环初始化一个字符数组,使用 '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/