【发布时间】:2014-08-19 02:01:58
【问题描述】:
我有一个非常简单的 C 程序。总的来说,我有这个操作:
int main(){
int theNumber = 9009;
printf("%s", (char *)theNumber);
}
当我运行它时,它给了我一个段错误。知道为什么吗?我做错了吗?
预期输出
此代码应将theNumber 转换为字符串,然后打印出来。所以输出将是:
9009
实际输出
分段错误。
【问题讨论】:
-
我不认为 9009 是一个有效的地址
-
我很抱歉没有澄清。 9009 应该是一个 int。
-
你没有投射到
char你正在投射到一个指向char的指针。为什么地址9009包含一个可以用printf打印的字符串? -
你打算完成什么?
-
您错过了一个好问题的关键部分。 您期望的输出是什么?
标签: c casting segmentation-fault printf