关于itoa参数问题

来源:百度知道 编辑:UC知道 时间:2024/05/29 07:35:43
对于char *_itoa( int value, char *string, int radix )
其中第二个参数string在用时需定义为数组形式,定义为指针却不正确,为什么?
例如:
void main( void )
{
char buffer[20];
int i = 3445;
itoa( i, buffer, 10 );
}正确

void main( void )
{
char *buffer=NULL;
int i = 3445;
itoa( i, buffer, 10 );
}是不正确的

itoa的结果存在第二个参数中,但第二个参数要有地址,如果没有地址转换后的结果存放到哪呢?itoa中不负责申请空间,其次临时变量也不能返回回来,所以只有你自己申请空间保存结果啦,明白了吗
如下的,是可以的
#include <stdio.h>
#include <stdlib.h>

void main( void )
{
char *buffer=(char*)malloc(sizeof(char)*4);
int i = 3445;
itoa( i, buffer, 10 );
}

简单的说,就是不知道你把转换的数据存到哪里去,所以会错