Langage C question debutant

Résolu/Fermé
LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 - 11 mai 2007 à 10:11
riadh01 Messages postés 5 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 1 août 2008 - 17 janv. 2008 à 21:25
Bonjour ca signifie quoi lorsqu'on fait
*ptr=0x00;
Est ce qu'onp eut le remplacer par
*ptr='/0';
merci ?

19 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
11 mai 2007 à 10:16
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'));
0
LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 5
11 mai 2007 à 10:25
Je suis desole mais il marche pas ton truc il met syntaxe error :(
0
LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 5
11 mai 2007 à 10:34
Le truc en plus si je fais
un prtinf ("%s",ptr);
il ne m'affiche rien de chez rien :(
0
LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 5
11 mai 2007 à 10:48
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
11 mai 2007 à 10:54
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
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
11 mai 2007 à 11:28
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ù?
0
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
11 mai 2007 à 11:47
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
0
n3crotox Messages postés 3 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mai 2007
11 mai 2007 à 11:58
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
0
LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 5
11 mai 2007 à 11:58
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
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
11 mai 2007 à 15:47
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
0
LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 5
11 mai 2007 à 17:03
le truc que je comprenais pas c'etais ca : (a<b?b:a)
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
12 mai 2007 à 17:28
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.
0
LaZo61 Messages postés 53 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 24 mai 2007 5
14 mai 2007 à 08:54
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
0
rohffdegre Messages postés 5 Date d'inscription mercredi 27 juin 2007 Statut Membre Dernière intervention 28 juin 2007
28 juin 2007 à 14:12
Bonjour,
esqu'on peut passer d'un schéma Pspice à un code en langage C?

Merci.
0
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?
0
nemesisdivina
10 déc. 2007 à 00:45
coucou, Je vais juste savoir comment on peut ecrire un algorithme pour exprimer un nombre comme 123 ou 3421, en combinant structures et tableaux?
0
ekra Messages postés 1870 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 342
10 déc. 2007 à 07:39
Bonjour,

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

Et il faut afficher
printf("%x\n",ptr);
0
riadh01 Messages postés 5 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 1 août 2008
17 janv. 2008 à 15:30
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
0
ekra Messages postés 1870 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 342
17 janv. 2008 à 19:36
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");
}


0
riadh01 Messages postés 5 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 1 août 2008
17 janv. 2008 à 21:25
merci frerre
0