Bonjour,
je voudrais savoir s'il existe une fonction en Langage C du genre "empty" en PHP
pour tester si une variable contient une valeur ,
Bonjour,
je voudrais savoir s'il existe une fonction en Langage C du genre "empty" en PHP
pour tester si une variable contient une valeur ,
Salut,
En C quand tu déclare une variable, tu réserve un espace mémoire ou tu pourra mettre ta valeur a l’intérieur. Seulement, en C, cet espace mémoire n'est pas réinitialiser quand tu le réserve, il y a donc de grande chance pour qu'il y ai une valeur laissé par un autre programme. Au finale ta variable n'est jamais vide, c'est a toi de veiller a l'initialiser correctement au risque de te prendre des segmentation fault.
Une variable, c'est ni plus ni moins qu'un objet se trouvant dans un emplacement mémoire, dans lequel se trouve une valeur (sur 1 ou plusieurs bytes, cela dépend justement de ce type).Bonjour,
je voudrais savoir s'il existe une fonction en Langage C du genre "empty" en PHP
pour tester si une variable contient une valeur ,
Une variable ne peut pas "rien" contenir.
De la même manière, une case mémoire ne peut pas "rien" contenir, même au moment même où on allume l'ordinateur. Elle contient toujours une valeur, la valeur de chaque bit la composant correspondant électroniquement à deux états opposés : haut (=1) ou bas (=0).
Les langages tels que PHP, Javascript, etc ne gèrent pas les variables de la même manière. A la base, ce sont des langages interprétés et ils manoeuvrent différemment. En quelque sorte, chaque objet correspond à une entrée dans une sorte de tableau, contenant plusieurs indications : le type, la valeur, etc.
Explique plus précisément ce que tu veux faire.
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
je comprend qu'une variable contient tjrs une valeur
voici ce que je compte faire
lors de l'ouverture la 1er fois l'utilisateur sera emmené a choisir l'option 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include <stdio.h> #include <stdio.h> .............................; printf("\t\t [1]-CREER TABLEAU\n\n"); printf("\t\t [2]-AFFICHER LE TABLEAU\n\n"); printf("\t\t [3]-DETERMNIER LA NOTE MINIMALE ET LA NOTE MAXIMALE\n\n"); printf("\t\t [4]-DETERMNIER LA SOMME ET LA MOYENE DES NOTES\n\n"); printf("\t\t [5]-TRIER LE TABLEAU DE NOTES\n\n"); printf("\t\t [6]-DETERMINER FREQUENCE D'UNE NOTE\n\n"); printf("\t\t [0]-QUITTER\n\n"); scanf("%d",&rep); printf("\t\t *******************************\n"); .............................; }
mais dans le cas ou celui-ci choisir directement l'option 2
c'est vrai que le tableau contient des valeurs mais pas celles voulues
je compte donc dire à l'utilisateur que le tableau est "vide" et donc qu'il doit dabord le creer
j'arrive à le faire en passant par un booleen ou une boucle if
mais je voudrais qu'avant de faire les calculs dans l'option 2 le programme verifie
je precise que le tableau est de type float
comment faire dans ce cas ?(si cela existe vraiment)
Si je comprends bien, tu veux créer un tableau dynamique ? Dans ce cas, la fonction malloc est ton amie.
Il faut déclarer un pointeur qui devra être initialisé avec la valeur NULL. C'est justement une valeur spéciale qui indique que sa valeur (l'adresse vers laquelle il pointe) n'est pas valide et qu'il ne faut donc pas déréférencer.
Quand tu voudras choisir l'option de 2 à 6 dans ton menu, il suffira de tester d'abord si le pointeur est à NULL ou pas.
Mieux encore : tu peux aussi afficher les options de 2 à 6 uniquement si le pointeur n'est pas à NULL, ce qui oblige à choisir d'office l'option 1.
Par contre, il faut supprimer l'option 1 une fois que le tableau est créé, sinon tu vas faire une fuite de mémoire.
Pour la création du tableau, si c'est un tableau à une seule dimension (ça a l'air d'être le cas ?), tu peux écrire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part type_des_elements tableau = malloc (nombre_d_elements * sizeof *tableau);
jeroman t'a donné une solution évoluée nécessitant une certaine maitrise du C. Mais même sans ça, ton problème se résous de façon classique que tu aurais trouvé tout seul si tu avais approfondi le raisonnement que ta remarque (que j'ai mise en rouge) entraine. Puisque ton tableau a déjà une valeur et qu'elle ne te convient pas alors tu le remplis toi-même avec une valeur spéciale qui te convienne et lorsque l'utilisateur choisis "2", si le tableau contient la valeur spéciale alors c'est que l'utilisateur n'est pas passé par le choix "1". D'ailleurs je dis "tout le tableau" mais dans les faits, la première case suffit. Ou alors, comme tu l'as dit, par un flag booléen (d'ailleurs le pointeur initialisé à NULL cité par jeroman joue à la fois le rôle de tableau et le rôle de booléen).
"boucle if" pfff...
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Oui je suis d'accord avec Sve@r, vu les questions que tu poses, je pense que
malloc n'est pas vraiment ton ami pour le moment. je te conseillerai une variable globale qui te renseigne sur ton tableau.
sachant qu'au demarage ton programme declare int drp=0;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if(rep==1&&drp=0) creerTableau(...); else puts("Tableau deja creer, choisisez une autre option\n");
puis dans la creation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Type creerTableau(Type...,Type...,...) { ...//inserer creation ici drp=1; }
Cette phrase est la phrase qui répond le mieux a la question de départ.Puisque ton tableau a déjà une valeur et qu'elle ne te convient pas alors tu le remplis toi-même avec une valeur spéciale qui te convienne
Je rajouterais que la "valeur spéciale" qui te convient, en fait, ca n'est pas uniquement une valeur "qui te convient".
En effet, il te faut considérer une valeur qui est hors de ton ensemble, afin d'éviter de pouvoir la retrouver une fois que ton traitement sera lancé.
Par exemple, pour un tableau de notes française, la valeur -1 est une valeur parfaite. Elle est hors de ton ensemble, facile a comprendre, facile a tester.
Si tu choisissais "3" comme valeur de variable entière non initialisée (encore une fois, cela ne veut rien dire en C !), comment ferais tu la distinction entre la note "3" et la valeur spéciale de non-initialisation "3". Cela peut paraitre débile de dire cela, car pour un ensemble aussi restreint que celui d'un tableau de notation française c'est presque instinctif, mais dans des cas plus complexes, c'est une question importante a se poser.
Partager