webForumDet fria alternativet

Parametrar

1 svar · 206 visningar · startad av Zaad

ZaadMedlem sedan dec. 200150 inlägg
#1

Varför krachar programmet??? Hittar inte felet!

int main(int argc, char *argv[])
{
    if (argc>1)
    {
        for (int i=argc;i>1;i--)
        {
                if (!strcmp(argv[i], "-c"))
                {
                                cout<<"\n Daniel Bj\x94rk\n";
                }
                else
                {
                                cout<<"\n Parameter "<<argv[i]<<" are invalid! \n";
                }
        }
    }
   
  return 0;
}
UlfTMedlem sedan maj 20016 050 inlägg
#2

Det kraschar därför att alla vektorer börjar på "0", och inte "1". Rent konkret i ditt fall har du satt variabeln i = argc. Därefter försöker du nå argv*, dvs argv[argc]. Men detta element finns inte. argc står bara för antalet element i i argv. Eftersom argv börjar med element "0", kommer följaktligen sista elementet att vara "argc-1".*

Genererad på 366 ms · cache AV · v20260730165559-full.f96bc7eb