没错,所以我正在使用内存移动数据。我在这里遇到麻烦。 我能做什么错?我已经解决了空终止符,它仍然不会输出我期望的结果。内存操作 - 我做错了什么?
char buff[34] = "I will not do anything like that.";
char * protocol = "abcdefghi";
char data[44];
memcpy(data, protocol, 10);
memcpy(data + 9, buff, 34);
cout << data << endl; //abcdefghiI will not do anything like that.
cout << strlen(data) << endl; // 42
char poin[10];
memcpy(poin, data, 10);
cout << poin << endl; //abcdefghiI╠╠╠╠╠╠╠╠╠╠abcdefghiI will not do anything like that.
对于最后一个cout我期待只是abcdefghi,但它出来,你看到上面。 任何帮助表示赞赏,谢谢!
我不会推荐在C++中使用strcpy来复制字符串,但是使用memcpy来完成其他级别的C和Classes。我会建议一本好书:http://stackoverflow.com/q/388242/46642 –
顺便说一句,答案就像“不,你没有考虑到空终止符” –