hur.cn - 华软网

 热门搜索

unsigned char 对象 new

  作者:未知    来源:网络    更新时间:2011/10/1
unsigned char a[] = {1,2,3};

unsigned char b[] = {4,5,6};

unsigned char* c

如何把將a and b 值给c

即c的值 = {1,2,3,4,5,6} ?

小弟想要的是简单和效率高代码,谢谢
---华软 网友回答---
C++">/*******************************************************************
 文件名        :Main.cpp
 创建者        :hankcs
 创建时间      :2011-10-1 10:12:00
 功能描述      :简单的控制台程序
                 
 ******************************************************************/
#include <iostream>
using namespace std;

///////////////////////////SubMain//////////////////////////////////
int main(int argc, char *argv[])
{
        unsigned char a[] = {1,2,3};
unsigned char b[] = {4,5,6};
unsigned char* c;

c = new unsigned char[6];
memcpy(c, a, sizeof(unsigned char) * 3);
memcpy(c + sizeof(unsigned char) * 3, b, sizeof(unsigned char) * 3);
printf("%d%d%d%d%d%d\n", c[0], c[1], c[2], c[3], c[4], c[5]);
        system("pause");
delete c;

        return 0;
}
///////////////////////////End Sub//////////////////////////////////

---华软网友回复---
unsigned char *c = new unsigned char [ _countof(a) + _counof(b) ];
memcpy(c + 0, a, sizeof(a));
memcpy(c + _countof(a), b, sizeof(b));
……
delete [] c;
---华软网友回复---
C++">
#include <string.h>
#include <stdio.h>

void main( void )
{
   char string[80];
   strcpy( string, "Hello world from " );
   strcat( string, "strcpy " );
   strcat( string, "and " );
   strcat( string, "strcat!" );
   printf( "String = %s\n", string );
}


strcat, wcscat, _mbscat
Append a string.

char *strcat( char *strDestination, const char *strSource );

wchar_t *wcscat( wchar_t *strDestination, const wchar_t *strSource );

unsigned char *_mbscat( unsigned char *strDestination, const unsigned char *strSource );


---华软网友回复---
c要new动态分配空间,以能够容下a和b的所有数据,然后分别memcpy拷贝a和b的数据到c中,最后不再使用c的时候delete
---华软网友回复---
数组的初始变量需要修改下
C++">
   unsigned char a[] = {1,2,3,0};//结尾为零
unsigned char b[] = {4,5,6,0};//结尾为零
unsigned char* c;
unsigned char *pa,*pb,*pc;

pa = a;pb=b;
c =pc= malloc(strlen(a)+strlen(b)+1);
while (*pa !=NULL || *pb != NULL )
*pc++ = ( *pa ? *pa++:*pb++);
*pc = 0;

free(c);
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。