使用編譯環境是qt 寫第程序:
需要注意的是字符串後面有一個結束字符'\0,因此需要減一,底下沒有減一出現異常情況
char ch1[] = "1234567890";
char ch2[] = "abcdefghij";
char ch3[] = "klmnopqrst";
char ch4[256] = {0};
memcpy(ch4,ch1,sizeof(ch1));
qDebug()<<"1 ch4 = "<<QString(ch4);
memcpy(ch4+sizeof(ch1),ch2,sizeof(ch2));
qDebug()<<"2 ch4 = "<<QString(ch4);
memcpy(ch4+sizeof(ch1) + sizeof(ch3),ch3,sizeof(ch3));
qDebug()<<"3 ch4 = "<<QString(ch4);
輸出:
1 ch4 = "1234567890"
2 ch4 = "1234567890"
3 ch4 = "1234567890"
減一後再打印輸出如下:
char ch1[] = "1234567890";
char ch2[] = "abcdefghij";
char ch3[] = "klmnopqrst";
char ch4[256] = {0};
memcpy(ch4,ch1,sizeof(ch1));
qDebug()<<"1 ch4 = "<<QString(ch4);
memcpy(ch4+sizeof(ch1)-1,ch2,sizeof(ch2));
qDebug()<<"2 ch4 = "<<QString(ch4);
memcpy(ch4+sizeof(ch1)-1 + sizeof(ch3)-1,ch3,sizeof(ch3));
qDebug().noquote()<<"3 ch4 = "<<QString(ch4);
輸出爲
1 ch4 = "1234567890"
2 ch4 = "1234567890abcdefghij"
3 ch4 = "1234567890abcdefghijklmnopqrst"