4

int findNumber(char *exp,int i,int *num)    
{    
    int k=i;    
    char *p;    
    p=exp[i]; //<-- here
    while(*p>='0'&&*p<='9')    
    {
        (*num)=(*num)*10+(*p);
        k++;
        p++;
    }
    return k;
}

我不断收到该错误:(p = exp [i];)我试图发送一个char数组和(i,num)整数,'i'我现在只是把它设为0,直到代码工作所以不要注意它。但是该函数应该返回“exp”中第一个不是数字的字符的位置,并确保之前的所有字符都是数字。

4

3 回答 3

5

p是 achar*所以你需要为它分配一个指针,但从数组中exp[i]返回一个元素。char尝试

p = &exp[i];

或者

p = (exp + i);

反而。

于 2013-01-09T18:30:03.740 回答
0

更正该行以对应于以下p=&(exp[i]);这意味着您正在将 exp[i] 的指针分配给 p。

于 2013-01-09T18:35:56.947 回答
0

您需要获取地址而不是然后传递给p,这是一个指针。换句话说,你被分配 char到一个char* returned from value ati index inexp` 数组。

试试这个:p = &exp[i];

于 2013-01-09T19:13:15.023 回答