如何在C中将int转换为char*?

如何在C中将int转换为char*?,c,C,可能重复: 我在C中有一个函数,它取一个int值。我需要将这个I值转换成字符串(char*) 以下是我到目前为止的情况: char *str = (char *)i; myfunction(str); 我得到的错误是:从不同大小的整数转换为指针 谢谢 这只是无效代码。即使您解决了编译时错误,结果也可能是运行时出现某种内存访问错误。结果将是一个指向字符串的指针,您不知道它实际指向的位置。所以当你的程序访问内存时,你会有一个错误 我想推测一下,您真正想要的是一个类似于itoa()的函数。这是唯一

可能重复:

我在C中有一个函数,它取一个int值。我需要将这个I值转换成字符串(char*)

以下是我到目前为止的情况:

char *str = (char *)i;
myfunction(str);
我得到的错误是:从不同大小的整数转换为指针


谢谢

这只是无效代码。即使您解决了编译时错误,结果也可能是运行时出现某种内存访问错误。结果将是一个指向字符串的指针,您不知道它实际指向的位置。所以当你的程序访问内存时,你会有一个错误

我想推测一下,您真正想要的是一个类似于
itoa()
的函数。这是唯一有意义的方法

编辑

根据一个新的注释,我发现您实际上需要一个类似于
itoa()
的函数。简单地尝试将整数转换为字符串指针并不能满足您的需要

char buff[80];

itoa(i, buff, 10);
myfunction(buff);

试试
(char*)(intptr\t)i
。不过,它可能不符合您的要求。您需要获取整数的字符串表示形式吗?或者整数真的编码了字符串的地址吗?我需要一个字符一个字符地打印整数。如果我向myfunction发送一个字符串,就会发生这种情况。@user92390:逐字符打印一个整数:
printf(“%d”,I)我不想使用外部函数。我需要能够一个字符一个字符地打印整型字符嘘,要想弄清楚你到底想做什么需要做很多工作。您应该已经发布了
myfunction()
的代码。因此,我想您需要编写自己的
itoa()
函数。我自己也做过很多次。但是你需要更好地理解C语言。对不起,我道歉。myfunction(char*string)只需逐个遍历字符串并打印每个字符的有效代码,尽管结果可能会有很大差异。获取整数,将其转换为char*,然后期望它指向原始整数值的字符串版本,这是无效的代码。