首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++两个基础的有关问题

2013-12-05 
C++两个基础的问题第一个问题,以下一段代码,目的是初始化一个10个字节的char指针,是否有更为精简的语法替

C++两个基础的问题
第一个问题,以下一段代码,目的是初始化一个10个字节的char指针,是否有更为精简的语法替代一下代码:

char * lp_a;
lp_a=(char *)UMalloc(11);
        memset(lp_a,0,11); //如果没有这句,执行下句后,lp_a将会显示为0x80041234+乱码,因为最后没有\0
memcpy(lp_a,"0x80041234",3);


请问这两句是否有更为精简的代码替代,实现同样的方法,目的就是为了避免因为结尾没有\0,而出现乱码
lp_a=(char *)UMalloc(11);
        memset(lp_a,0,11);


第二个问题:如何将"0x80041234"字符串转换为等值的LONG类型

谢谢
  
 


[解决办法]
memcpy(lp_a,"0x80041234",3);

楼主确定最后一个参数是3?
mreset没有必要, 只要把memcpy的最后一个参数改为11即可。
或者使用strcpy


第二个问题
int i;
sscanf("0x80041234", "%x", &i);

热点排行