数据类型转换
各位老大如何实现如下类型的转换:
char buf1[MAX_PATH];
char * buf2=new char[MAX_PATH];
如何将buf1的值存放到buf2中
[解决办法]
strcpy(buf2, buf1);
[解决办法]
如果buf1中不是字符串而是字符数组,可以用:memcpy(buf2, buf1, sizeof(buf1));
[解决办法]
strcpy(buf2, buf1);
正解
[解决办法]
如果是字符串的strcpy就够了,但是其他类型的,就用memcpy,
如果buf1中不是字符串而是字符数组,可以用:memcpy(buf2, buf1, sizeof(buf1));
---------------------------------------
这个有一个小bug,就是buf2不是以 '\0 '结尾的,得自己处理一下, buf2[sizeof(buf1)] = '\0 '.
[解决办法]
偶试了一下,可以的挖
[解决办法]
是因为你的szExeFile的类型是一个字符指针而不是字符数组.
所以sizeof(szExeFile)的值是1个字符而不是整个字符数组的大小.
你可以把
memcpy(buf,tpe.szExeFile,sizeof(tpe.szExeFile));
改成:
memcpy(buf,tpe.szExeFile, strlen(szExeFile)+1); //因为最后还有一个/0要复制
这样应该就可以了.
还有贴代码最好贴全,你的结构体定义都没有贴出来,大家只有猜是什么类型.
我也是猜的szExeFile是一个字符指针,不知道对不对.
[解决办法]
我晕,既然两个数组一样大,为什么要用sizeof()呢。。。
memcpy(bf2,bf1,MAX_PATH);不就完了,还考虑什么\0...
[解决办法]
再者,你这个不叫类型转换,非要叫个什么名堂的话就叫数据转存吧。。。