返回信息流各位大牛 下面是一段整形转化成字符串的函数。。在writeInt函数中打印出来是准确的,但是传送到主函数就不正确,估计是传参时候的问题,看过书籍后还是不清楚怎么回事
#include "stdafx.h"
#include "stdio.h"
#include <iostream>
#include <string.h>
void writeInt(char **buff,int value,int length,int offset)
{
int i;
*buff= (char *)malloc(length*sizeof(char));
if(length<offset+4)
{
printf("Index Out of Bounds:offset+4>buff.length!\n");
}
printf("the value is %d\n",value);
for (i = 3; i >= 0; (*buff)[offset + i] = (char) (value % 256), value >>= 8, i--)
;
for(i=0;i<4;i++)
printf("%02x ",(unsigned char )(*buff)[i]);
}
void main()
{
char *abs_str1;
int abs,i,len;
abs = 2;
abs_str1 = (char *)malloc(4*sizeof(char));
writeInt(&abs_str1,abs,4,0);
len = strlen(abs_str1);
printf("\n%d",len);
printf("\nthe abs_str1 is %s",abs_str1);
printf("\n");
for(i=0;i<len;i++)
printf("%02x ",(unsigned char)abs_str1[i]);
}求救求救求救~~~~牛人棒棒忙吧
这是一条镜像帖。来源:北邮人论坛 / cpp / #36016同步于 2010/2/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[求助]关于指针参数的小段程序向牛人求救~~~
Jazztress
2010/2/20镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
abs_str1指向的地址开始四个字节不是
00 00 00 02么
strlen遇到0就返回了啊
【 在 Jazztress 的大作中提到: 】
: 那返回长度为什么不是4呢 我不是申请了四个字节的空间吗?