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);