Langage C question debutant [Résolu/Fermé]

Signaler
Messages postés
53
Date d'inscription
jeudi 1 février 2007
Statut
Membre
Dernière intervention
24 mai 2007
-
Messages postés
5
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
1 août 2008
-
Bonjour ca signifie quoi lorsqu'on fait
*ptr=0x00;
Est ce qu'onp eut le remplacer par
*ptr='/0';
merci ?

19 réponses

Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 263
Bonjour.
*ptr=0x00;
assigne la valeur 0 à "*ptr"
*ptr='\0' assigne le caractère nul.
je ne sais pas si c'est la même chose.
Pour vérifier, fait une sortie de '\0' avec printf en lui demandant de sortir un entier :
printf("%d",int('\0'));
Messages postés
53
Date d'inscription
jeudi 1 février 2007
Statut
Membre
Dernière intervention
24 mai 2007
5
Je suis desole mais il marche pas ton truc il met syntaxe error :(
Messages postés
53
Date d'inscription
jeudi 1 février 2007
Statut
Membre
Dernière intervention
24 mai 2007
5
Le truc en plus si je fais
un prtinf ("%s",ptr);
il ne m'affiche rien de chez rien :(
Messages postés
53
Date d'inscription
jeudi 1 février 2007
Statut
Membre
Dernière intervention
24 mai 2007
5
Alors pas de reponse

Je veux juste savoir si
*ptr=0x00 <=> *ptr='\0'
ou <=>ptr=""
en faite si je fais un printf("%s",ptr) il ne m'affiche rien est ce que je peux conclure qu'il lui assigne le caractere null ?
merci
Messages postés
391
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
4 décembre 2007
93
Heu je crois que si tu mets *ptr=0x00, ca te met le pointeur à l'adresse 0 ca ne travaille pas sur la valeur..

*ptr='\0' te met le caractère de fin de chaine à l'adresse pointée
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 263
pour moi 0x00 c'est 0 en hexadecimal.
je ne voi pas pourquoi lorsque tu fait *ptr=0x00 tu modifierait l'adresse du pointeur.
Si je veux annulé un poiinteur je fait : ptr=0 (ou 0x00) sans l'étoile.
essai ça alors :
printf("essai : %d",int('\0'));
en fait un caractère correspond à une valeur d'entier. Le tout est de savoir si '\0'==0.
D'ailleur tu peux tenté ça comme code :
if ('\0'==0)
    printf("equivalence entre \\0 et 0");
else
   printf("pas d'equivalence\n"); 
ta syntax erreur, il la met où?
Messages postés
391
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
4 décembre 2007
93
Oki j'ai dû me gourer alors j'avais fait des tests là-dessus et j'avais eu un truc avec des passages auto par adresse si on utilisait 0x

C'était ptet en passant 0x dans une variable j'vérifierais

Sinon le caractère \0 vaut bien 0, ou NULL
Messages postés
3
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mai 2007

me souvein plus bien, il faut que je revoi mon C:


Le truc en plus si je fais
un prtinf ("%s",ptr);
il ne m'affiche rien de chez rien :(
--

ptr c'est un pointeur. me demande s'il faut pas déferencer le pointeur (comme j'ai dit me souviens plus bien alors une confirmation ca serait bien)

maintenant oui 0x00 c'est 0 en héxa et 0 en hexa c'est 0 en décimal et en binaire donc c'est pas "\O"
essaye un printf("%x",\O);

pas testé mais de toute facon le comme j'ai dit, un 0 reste un 0 meme un 0x00 :) donc le caractere nul, je ne pense pas que ce soit le meme.

EDIT /// ok j'ai rien dit :) je viens d'apprendre un truc :D
Messages postés
53
Date d'inscription
jeudi 1 février 2007
Statut
Membre
Dernière intervention
24 mai 2007
5
il me met error syntaze before int,

une autre question subsidiere qui me tracasse la tete
#define MAX(a,b) (a<b?b:a)
#define FSET(a,b,c) (FD_ISSET(a,c)?a:b)
#define NFSET(a,b,c) (FD_ISSET(a,c)?b:a)

le define je comprend mai on afecte FSET(a,b,c) a quoi exactement je nai pas compris avec les parentheses :(

merci
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 263
tu défini une macro fonction.*
dans ton code après tu peux écrire :
MAX(3,1) et ça retourne 3.*Si c'est bien ça ta question
Messages postés
53
Date d'inscription
jeudi 1 février 2007
Statut
Membre
Dernière intervention
24 mai 2007
5
le truc que je comprenais pas c'etais ca : (a<b?b:a)
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 263
Ha ! ça !
En fait, c'est une écriture condensé.
Soit A,B,C trois expressions.
A?B:C
est équivalent à :
if(A) return B; else return C;
Voilà, j'espère que ça répond à ta question.
Messages postés
53
Date d'inscription
jeudi 1 février 2007
Statut
Membre
Dernière intervention
24 mai 2007
5
Merci c'est clair et net c'est un peur normal c'est sur internet :)
une petite blague pour reveiller tou le ptit monde :) ca ne fait pas de mal
Messages postés
5
Date d'inscription
mercredi 27 juin 2007
Statut
Membre
Dernière intervention
28 juin 2007

Bonjour,
esqu'on peut passer d'un schéma Pspice à un code en langage C?

Merci.
Tu veux transformer un schéma éléctronique en langage C? je suis pas sur de te suivre là..
Tu peux détailler un peu ce que tu veux réellement faire stp?

coucou, Je vais juste savoir comment on peut ecrire un algorithme pour exprimer un nombre comme 123 ou 3421, en combinant structures et tableaux?
Messages postés
1867
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
24 juillet 2014
333
Bonjour,

0 == '\0 C'est le caractère NULL'
ptr = 0;

Et il faut afficher
printf("%x\n",ptr);
Messages postés
5
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
1 août 2008

slut .j ai problemme avec cet exercice
ecris le programme qui lis un nombre puis affiche le nombre de chifre :
198 il contient 3 chiffres


******
ecris le programme qui affiche
*
**
***
****
*****
******
*******
********

aide mois SVP
NB les programme doit etr en c
Messages postés
1867
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
24 juillet 2014
333
Salut

char chaine;
int i;
int j;

scanf("%s",chaine);
printf(strlen(chaine));

for (j=1 ; j<9;j++) {
  for (i=1;i<=j;i++)
     printf("*");
  printf("\n");
}


Messages postés
5
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
1 août 2008

merci frerre