c语言问题 指针这块的问题

2019-08-22 16:06发布

我是想编一个int转换为字符数组的程序
我在main里面定义一个指向char类型的指针变量x function函数返回一个地址然后x接到 然后输出这个字符数组 运行结果居然是.exe文件停止工作 求大家帮帮忙!!
代码如下
#include<stdio.h>
char*function(int n);
int main()
{
        char*x;
        x=function(567);
        printf("%s ",*x);       

}
char*function(int n)
{
        short i=0;
        char b[50]="0",*q;
        int num;
        while(n>0)
        {
                num = (n-n/10*10);
                printf("%d ",num);
                b[i]=(char)(num+48);
       
                i++;
                n=n/10;
        }
        printf("%s ",b);   //这里是没问题的  可以显示。
        return q=b;
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
JUSTNIUB
1楼-- · 2019-08-22 20:54
你在Function里面定义的数组是一个局部变量,一般来说局部变量在函数退出之后会被释放掉,但是你返回的地址正好是被释放掉的这块内存
当你在主函数中再去使用的时候,这块地址中的内容是未知的了。
augustedward
2楼-- · 2019-08-22 20:57
 精彩回答 2  元偷偷看……

一周热门 更多>