J'ai donc le programme suivant qui sort le paramètre avec la longueur maximale. Je veux faire une exception alors quand je lui donne 0 paramètres, j'obtiens une erreur me disant que j'ai besoin d'au moins un paramètre.Programme simple Segmentation Défauts avec 0 paramètres de ligne de commande
// Program which given an number of program parameters
// (command-line parameters, calulates the length of each one
// and writes the longest to standard output.
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{
int i;
int maxLength = strlen(argv[1]);
char* maxString = argv[1];
if (argc<=0)
{
printf("You cannot have 0 parameters\n");
exit(0);
}
for(i = 2; i < argc; ++i)
{
// find out the length of the current argument
int length = strlen(argv[i]);
if (maxLength < length)
{
maxLength = length;
maxString = argv[i];
} // if
} // for
printf("Largest string is %s\n", maxString);
} // main
Ceci est mon code, mais pour une raison quelconque, je reçois une erreur de segmentation quand je donne 0 arguments, au lieu du message.
Des pensées?
Cela nécessite un peu plus de code de contexte. – usr2564301
J'ai ajouté tout le code. – Sarah97
Que diriez-vous de nous donner le numéro de ligne de la segfault? Pourquoi perdre notre temps à lire le code si vous ne nous donnez pas autant d'informations? Désolé, mais si vous ne publiez pas de backtrace avec le crash qui montre un manque fondamental de tentative de réparation vous-même. –