我有一个非常简单的C程序。总的来说,我有这个操作:
int main(){
int theNumber = 9009;
printf("%s", (char *)theNumber);
}
而当我运行它时,它给了我一个段错误。知道为什么吗?我做错了吗?
预期产量
此代码应将
theNumber
转换为字符串,然后打印出来。因此输出为:9009
实际产量
分段错误。
最佳答案
这试图打印在地址9009
上找到的任何内容。好像操作系统没有给您的程序访问该地址的权限(很可能将其完全用于其他用途),操作系统会引发分段错误。在这里阅读更多:What is a segmentation fault?
如果您真的只想打印整数值,请使用正确的printf命令:
int main(){
int theNumber = 9009;
printf("%d", theNumber);
}
请注意,您无需在此处引入字符串即可实现此目的。
关于c - 在C中将int转换为char时出现段错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24460649/