【发布时间】:2011-04-19 13:03:43
【问题描述】:
在 C 中:
我的字符串长度函数返回 size_t 值?
为什么它不返回一个传统的整数?我注意到的另一件事是,当我尝试将此字符串与另一个字符串连接时,我在运行程序时收到了总线错误。
上下文:我有点玩 gmp 库并将大数字转换为字符串,我最终遇到了上述情况。
那是什么类型的字符串?我的操作系统是否在此问题中起作用?我使用 MAC,64 位操作系统。
已编辑:我收到的错误消息是:
: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘size_t’
谢谢!
@all:感谢您的回答,但我想我会将总线错误作为另一个问题,因为这似乎是一个不同的问题。
【问题讨论】:
-
size_t是整数数据类型。总线错误很可能与此完全无关,您可能只是超出了缓冲区,在某处有一个悬空/空指针或类似的东西。 -
@Mat 整数部分现在已经澄清了,但是对于我使用 strcat 作为两个字符指针的任何程序,总线错误变得很常见。
-
专门为此打开一个新问题,其中包含一些代码 sn-ps,显示您如何使用
strcat。