大家好,所以我的反向复制方法遇到了一些问题。该方法需要反向复制char *。
pageList[pageID]
目的地是存储副本的地方。
来源被复制char
Num是数组中的字符数
任何见解都表示赞赏。感谢
答案 0 :(得分:2)
使用standard library algorithm是否会作弊?
char* reverseCopy(char* destination, const char* source, int num)
{
std::reverse_copy(source, source + num, destination);
destination[num] = '\0';
return destination;
}
答案 1 :(得分:1)
但是有更简单,更快捷的方法:
例如,为什么需要在循环中将GL_UNSIGNED_INT_24_8
复制到source
?
如果destination
怎么办?
这个循环:
destination == source
写错了,即使它是一个正确的书面循环,你也会覆盖for (int i=0; i<num; num--)
{
placeHolder = destination[num];
destination[i]=placeHolder;
}
中未恢复的数据。
我希望这样的事情能够起作用(照顾destination
可能的情况):
source == destination
答案 2 :(得分:0)
我可能会按如下方式编写该函数:
char* reverseCopy(char* destination, const char* source, int num) {
char* d = destination;
while (num) {
*d++ = source[--num];
}
*d = '\0';
return destination;
}