当我尝试将指针转移到另一个指针时,我对以下错误感到困惑。有没有人可以告诉我为什么会发生这种错误?
它说
error C2143: syntax error : missing ';' before 'type'
传输指针时如下:
void compressString(char * pStr)
{
char * pInputStr ;
// ...
pInputStr = pStr; //**I can not understand why this sentence is error.**
// ...
}
但是这个可以工作:
void compressString(char * pStr)
{
char * pInputStr = pStr; //No error will be alerted.
// ...
}
这是功能的更完整版本:
void compressString(char * pStr)
{
char * pInputStr = pStr;
char * pCompressedStr = NULL;
int totalRepeatChar;
int currentPointerPosition;
int lenCompressedStr = 0;
char testTemp;
int i = 0;
pInputStr = pStr; //I can not understand why this sentence is error.
char arrIntCoverted[DIGITALUINTNUM+1] = {'\0'};
// And then lots more code in the function
}
答案 0 :(得分:2)
您得到的错误是因为您混合了声明和可执行语句,而Visual Studio使用的是旧的C语言,而您无法做到这一点。
这是一个可执行的声明:
pInputStr = pStr; //I can not understand why this sentence is error.
你得到的错误实际上不在那一行,而是在下一行,这是一个声明:
char arrIntCoverted[DIGITALUINTNUM+1] = {'\0'};
答案 1 :(得分:0)
在多行注释中,“/”和“*”应该在一起。在您的情况下,您在评论结束时有新行。
检查:
pInputStr = pStr; //**I can not understand why this sentence is error.**
// ...