写下列代码时,出现了这个报错
E0852 表达式必须是指向完整对象类型的指针
是在函数最后一行那个destination++处出现的
请问这个报错是什么意思?
/*实现逆序的Memcpy方法。
函数原型: void * reversememcpy ( void * destination, const void * source, int num );
功能要求: 从source所指的内存地址的起始位置开始拷贝num个字节,按字节逆序保存到目标
destination所指的内存地址的起始位置中。
返回值:为destination
注意:
1. 本函数实现的是按字节逆序拷贝。例如source指向位置,如果依次保存了'a','b','c','d',当num=4时,
则逆序拷贝后destination指向的位置应该依次'd','c','b','a'.
2. 将源文件命名为functions.cpp。
3. 遇到异常情况,输出"error";否则不要随意输出,会视为错误。*/
#include<stdio.h>
void* reversememcpy(void* destination, const void* source, int num);
int main()
{
int num;
char destination[10];
char source[10] = { "abcd" };
reversememcpy(destination,source,num);
for (int i = 0; destination[i] != ' '; i++) printf("%c", destination[i]);
return 0;
}
void* reversememcpy(void* destination, const void* source, int num)
{
if (destination == NULL || source == NULL) printf("error");
else {
int i;
for (i = 0; (char)destination != ' ' && (char)destination != '\0'; i++)destination++;
}
}