向上的蜗牛 发表于 2018-8-15 14:49:13

为什么运行不起来?

本帖最后由 claws0n 于 2018-9-12 13:20 编辑

#include <stdio.h>

char myitoa(int ,char *);

char myitoa(int num,char*str)
{
        int n=0;
        char s;
        int i,j,k,l;
        char m;
       
        if(num<0)
        {
                str='-';
                num*=-1;
                n++;
        }
        j=num;
        for(i=0;(num!=0);i++)
        {
                k=num%10;
                num/=10;
                m='0'+(k-0);
                s=m;
        }
        s=m;
        j=i;
        for(l=0;l<i;l++,j--)
        {
                str=s;
        }
        str='\0';
        return str;
}

int main()
{
        char str;

        printf("%s\n",myitoa(-12345,str));
}

向上的蜗牛 发表于 2018-8-15 14:51:43

我把myitoa改成void型然后直接这样又正常了{:10_284:}
int main()
{
        char str;
        myitoa(-12345,str);
        printf("%s\n",str);
}

claws0n 发表于 2018-8-15 15:19:23

向上的蜗牛 发表于 2018-8-15 14:51
我把myitoa改成void型然后直接这样又正常了

你的程序要做什么的?架构有问题~

向上的蜗牛 发表于 2018-8-15 15:48:09

claws0n 发表于 2018-8-15 15:19
你的程序要做什么的?架构有问题~

哪里构架问题啊{:10_255:}

claws0n 发表于 2018-8-15 15:49:42

向上的蜗牛 发表于 2018-8-15 15:48
哪里构架问题啊

整形转字符型?感觉有不必要的操作~
编译器会提出警告

向上的蜗牛 发表于 2018-8-15 16:12:54

claws0n 发表于 2018-8-15 15:49
整形转字符型?感觉有不必要的操作~
编译器会提出警告

这道题题目要求意思简单模拟下itoa函数,然后我构思成这样了{:10_255:}
这是编译器给我警告{:10_255:} initialization makes pointer from integer without a cast

claws0n 发表于 2018-8-15 17:27:45

向上的蜗牛 发表于 2018-8-15 16:12
这道题题目要求意思简单模拟下itoa函数,然后我构思成这样了
这是编译器给我警告

你这是传址函数呀(指针),但返回确实字符型,33 应该 return *str
但是你设计的架构有点毛病,一时间说不上

gpf谦默 发表于 2018-9-8 10:36:22

char换为 char *你定义的函数是char类型返回的却是char *
页: [1]
查看完整版本: 为什么运行不起来?