Les Argument Du main() !!!

Signaler
Messages postés
45
Date d'inscription
samedi 16 février 2002
Statut
Membre
Dernière intervention
16 septembre 2004
-
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
-
bha expliquon mon problem !
int main(int nArg,char* cArgs[])
{
// ..... plein de ligne de code ......
}

bha vous voyer ses une declaration d'un main des plus banale mais ce que je voudrais faire ses prendre les argument dans cArgsp[] et les mettre dans un char normal
esce possible et si oui comment :S

merci de vos reponce :D

18 réponses

Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
cArgsp[] pas un char normal ?? tu veux faire quoi exactement ?
Messages postés
45
Date d'inscription
samedi 16 février 2002
Statut
Membre
Dernière intervention
16 septembre 2004

bha dison que je veux mettre char* cArgs[] dans char BOB[]

comment je mi prend
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
soit tu fais

char BOB[200];
strcpy( BOB, cArgs[1] );

ou alors

char *BOB;
BOB = cArgs[1];
Messages postés
45
Date d'inscription
samedi 16 février 2002
Statut
Membre
Dernière intervention
16 septembre 2004

okok cool merci :D:D:D ses sa que je voulais :D

mais en passant tu peux mexpliquer comment cArgs[1] peux stocker une chaine de caractere comme "--jaimelespatate"

tout les affaire de pointeur sa me melange !!!
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
cArgs c'est pas un tableau de char, mais un tableau de char* (cf char* cArgs[] )

donc cArgs[1] est un char* (et non un char) et contient l'adresse de la chaine "--jaimelespatate"
Messages postés
45
Date d'inscription
samedi 16 février 2002
Statut
Membre
Dernière intervention
16 septembre 2004

hummm ok ! :O
mais esce que un pointeur ne sert qua sa contenir des adresse ??? et pi a quoi sa sert des adresse ....
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
un pointeur ca sert a contenir des adresses (une adresse en memoire), ca permet de manipuler des zones memoire (regarde par exemple les fonction de memory.h), passer des parametre par adresse pour gagner du temps...

par exemple :

char toto[] = "toto";

char *pointeur = toto;

pointeur[1] = 'a';

puts( toto ) ==> affiche "tato"

on pouvait aussi faire

*++pointeur = 'a' ...
Messages postés
45
Date d'inscription
samedi 16 février 2002
Statut
Membre
Dernière intervention
16 septembre 2004

WOW je savais pas que cetais aussi puissant!
mais esce que on peux adresse une adresse manuellement a un pointeur
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
oui

char *pointeur = 0xgfsd4gfd; // 0x pour de l'hexa
mais ta interet a savoir ou tu tente d'acceder ! les pointeurs peuvent etre a l'origine de nombreux bug et plantage lorsqu'il sont mal utilisés
Messages postés
45
Date d'inscription
samedi 16 février 2002
Statut
Membre
Dernière intervention
16 septembre 2004

hummm interessant :P
mais le plantage serais sur le programe ou je pourais fair planter les autre programme ?
a pi si ta msn envoille moi ton email par message sa serais plus rapide communiquer :P
et sa polurais moin le fofo. merci encore pour tout les renseignement.
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
le plantage serait pour ton programme, heuresement
Messages postés
173
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
22 août 2008

A noter également qu' il n est pas très utile de donner manuellement une valeur a un pointeur, ca tu ne sais pas ce sur quoi ca pointe. On alloue de la mémoire a un pointeur pour qu il ait justement un endroit 'stable' sur lequel pointer (avec malloc en c ou new en c++)
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Il y a peut être des emplacement mémoire qui pointent toujours sur la même chose. Et puis la valeur NULL est bien un exemple de pointeur qu'on initialise 'manuellement'.
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
oui, comme l'adresse de la memoire video en mode reel
Messages postés
173
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
22 août 2008

Oops c' est vrai :)
J avais oublié ces éléments la.
Mais NULL c est pas vraiment une adresse, c est ... rien justement.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
J'ai jamais dit que c'était un adresse
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
tiens djl je viens de voir que tu as écrit
char *pointeur = 0xgfsd4gfd;

ca, je pense pas qu'on puisse le faire :)
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
oui ca peut pas marcher