Salve mi chiamo Rino e sono nuovo del forum. Per la seguente funzione di un programma che effettua il bilanciamento delle equazioni chimiche:
[int opt2(char *str)
{
int i,num1,num2,n;
int start,end;char *m;
m=str;
while(strchr(str,'(')!=NULL || strchr(str,'[')!=NULL)
{
if(strchr(str,'(')!=NULL)
{
start=strchr(str,'(')-m;
end=strrchr(str,')')-m;
}
else if(strchr(str,'[')!=NULL)
{
start=strchr(str,'[')-m;
end=strrchr(str,']')-m;
}
num1=str[end+1]-48;
for(i=start;i<end;i++)
{
if(str[i]>=49 && str[i]<=57)
{
num2=str[i]-48;
num2=num2*num1;
str[i]=num2+48;
}
}
str[start]='.';
str[end]='.';
str[end+1]='.';
}
for(i=0;i<strlen(str);i++)
{
if(str[i]=='.')
{
for(n=i;n<=strlen(str);n++)
str[n]=str[n+1];
i=0;
}
}
}
alla riga
num1=str[end+1]-48;
il devc++ mi dà un errore di segmentazione. Non sono un esperto di programmazione in c++ ma in questi giorni mi sto sempre più impratichendo. C'è qualcuno che mi può dare un aiuto. Grazie saluti