Error:Assignment делает указатель из целого числа без броска

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 [я];) Я пытаюсь послать массив символов, и (я, цифра) целые числа, 'я', которым я просто помещаю его, чтобы быть 0 на данный момент до кодовых работ так, не обращает внимание на него. но функция должна возвратить место первого характера в "exp", который не является числом с тем, чтобы быть уверенным, что все те прежде - числа.

2
nl ja de

3 ответы

p is a char* so you need to assign a pointer to it but exp[i] returns a single char element from an array. Try

p = &exp[i];

или

p = (exp + i);

вместо этого.

5
добавлено
работавший:) Спасибо!!!
добавлено автор Elia, источник

Вы должны взять адрес - вместо и затем принять к p , это - указатель. Другими словами, вы, назначают случайную работу к , случайная работа* возвратилась из стоимости в я индекс в exp' множество.

Try this: p = &exp[i];

0
добавлено

do correct the line to correspond to the following p=&(exp[i]); this means that you are assigning the pointer of exp[i] to p.

0
добавлено