In C:
我的字符串长度函数返回一个size_t
value?
为什么它不返回传统的整数?我注意到的另一件事是,当我尝试将此字符串与另一个字符串连接时,我在运行程序时收到了总线错误。
上下文:我正在使用 gmp 库并将大数字转换为字符串,最终遇到了上述情况。
那是一根什么样的绳子?我的操作系统是否导致此问题?我使用的是 MAC 64 位操作系统。
编辑:我收到的错误消息是:
: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘size_t’
Thanks!
@all:感谢您的回答,但我想我会将总线错误作为另一个问题,因为这似乎是一个不同的问题。
问题是int
可能不够宽,无法存储所有可能的长度值范围。例如,在 64 位上,您可以拥有超过 4 GB 的字符串,并且如果int
是 32 位,你不可能通过一个返回这么长的字符串的长度int
多变的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)