Langage C question debutant

Résolu
LaZo61 Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   -  
riadh01 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour ca signifie quoi lorsqu'on fait
*ptr=0x00;
Est ce qu'onp eut le remplacer par
*ptr='/0';
merci ?
A voir également:

19 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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   Statut Membre Dernière intervention   5
 
Je suis desole mais il marche pas ton truc il met syntaxe error :(
0
LaZo61 Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   5
 
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   Statut Membre Dernière intervention   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
0

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

Posez votre question
Stupeflip Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   94
 
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 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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   Statut Membre Dernière intervention   94
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   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
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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   Statut Membre Dernière intervention   5
 
le truc que je comprenais pas c'etais ca : (a<b?b:a)
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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   Statut Membre Dernière intervention   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
0
rohffdegre Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
esqu'on peut passer d'un schéma Pspice à un code en langage C?

Merci.
0
Nghialong
 
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
 
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   Statut Membre Dernière intervention   342
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   342
 
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   Statut Membre Dernière intervention  
 
merci frerre
0