J'ai récemment commencé à apprendre C++ et je suis un peu confus au sujet de argv
et argc
. J'essaie de déterminer si les arguments ont été passés à un programme en vérifiant la taille de argc
, mais peu importe le nombre d'arguments (y compris aucun) je passe au programme la taille de celui-ci est toujours 4
.Comment vérifier si les arguments ont été passés en C++
Exemple simple:
int main(int argc, char** argv)
{
std::cout << sizeof(argc); //outputs 4 with 0 or any num of arguments
std::cout << sizeof(argv); //outputs 8 with 0 or any num of arguments
}
Je trouve cette même question posée avant et je me excuse de le répéter, mais les réponses sur ces pages que je trouvais étaient en contradiction avec ce qui se passe ici. Donc, pourquoi argc
est toujours 4
et y a-t-il un autre moyen de vérifier si les arguments ont été passés à main()
?
Si c'est pertinent, j'utilise g ++ pour compiler.
Vous devez vérifier la valeur de argc non sizeof (argc), sizeof demande le nombre d'octets de mémoire occupés par cet entier, qui est de 4 octets (32 bits). – Kulix
Parfois, il est utile de commencer à réfléchir avant de poser des questions ... –