C 错误:赋值从整数生成指针,但没有强制转换
C 错误:赋值从整数生成指针,但没有强制转换,c,C,int findNumber(char*exp,int i,int*num) { int k=i; char*p; p=exp[i];//=“0”和&*pp是一个char*,因此您需要分配一个指向它的指针,但exp[i]从数组返回一个char元素。请尝试 int findNumber(char *exp,int i,int *num) { int k=i; char *p; p=exp[i]; //<-- here w
int findNumber(char*exp,int i,int*num)
{
int k=i;
char*p;
p=exp[i];//=“0”和&*pp
是一个char*
,因此您需要分配一个指向它的指针,但exp[i]
从数组返回一个char
元素。请尝试
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]);
这意味着您正在分配exp[i]的指针到p.您需要获取的地址,而不是,然后传递给p
,这是一个指针。换句话说,您将char
分配给char*一个char*值,该值是从
exp`数组中的i索引处返回的
试试这个:p=&exp[i];
p = &exp[i];
p = (exp + i);