- 论坛徽章:
- 0
|
- #include <stdio.h>
- #include <string.h>
- int itoc(const int i, char **ch);
- int main()
- {
- int a = 99999;
- int b = 100001;
- int c = 100000;
- char *ch = 0;
-
- itoc( a, &ch);
- printf("ch: %s\n", ch);
- itoc( b, &ch);
- printf("ch: %s\n", ch);
- itoc( c, &ch);
- printf("ch: %s\n", ch);
-
- }
- int itoc( const int i, char **ch)
- {
- char buf[33];
- memset( buf, ' ', 33);
- buf[32] = '\0';
- *ch = buf;
- int t = i;
- int l = i;
- int m = 0;
- while( t )
- {
- l = t%10;
- buf[31 - m++] = l + '0';
- t/=10;
- }
- return 0;
- }
复制代码 结果就是这个样子:
[pai@192 002]$ ./ok
ch:
ch: 100001
ch: 100000
我想把数字转换成字符输出,但是第一调用的结果却没有被输出,我用gdb跟踪过,执行itoc后*ch的值是99999,第一次的不能输出, 以后的却可以输出了,刚学着使用gdb还不是很懂,请大家帮我看看那里出了问题。 |
|