webForumDet fria alternativet

Parametrar

C/C++

1 svar · 208 visningar · startad av Zaad

Medlem sedan dec. 200150 inlägg
Frågan#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;
}
Medlem sedan maj 20018 027 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".*

255 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)