un autre probleme se pose ....... - C++ - Programmation
Marsh Posté le 27-08-2002 à 09:49:04
Et bien en fait, quand tu as un char nom[64] tu as réservé un espace mémoire de taille 64 fois la taille d'un char. Or comme le premier indice de tout tableau est 0, nom[64] est comme nom[65] et sont tous les deux indéfinis et pas nécessairement NULL.
Marsh Posté le 27-08-2002 à 10:10:12
BB138 a écrit a écrit : Et bien en fait, quand tu as un char nom[64] tu as réservé un espace mémoire de taille 64 fois la taille d'un char. Or comme le premier indice de tout tableau est 0, nom[64] est comme nom[65] et sont tous les deux indéfinis et pas nécessairement NULL. |
arf zut ca m arrange pas ca
j aurias bien aime qu il renvoie la valeur NULL
bon jvais devoir trouve un autre moyen
Marsh Posté le 27-08-2002 à 10:11:47
Lenoiche a écrit a écrit : arf zut ca m arrange pas ca j aurias bien aime qu il renvoie la valeur NULL bon jvais devoir trouve un autre moyen |
Ben t'as la sollution:
Code :
|
Marsh Posté le 27-08-2002 à 10:13:10
Lenoiche a écrit a écrit : arf zut ca m arrange pas ca j aurias bien aime qu il renvoie la valeur NULL bon jvais devoir trouve un autre moyen |
t'aimes bien jouer avec le feu et les écrans bleus toi...
Marsh Posté le 27-08-2002 à 10:16:02
Harkonnen a écrit a écrit : t'aimes bien jouer avec le feu et les écrans bleus toi... |
moi j suis un freestyler , qui fais des figure de style en programamtion que tu verra jamais
sinan y a t'il une instruction qui permette de me donner la taille d'un tableau ???
Marsh Posté le 27-08-2002 à 10:20:04
Ben faut utiliser le vector de la STL qui fais tout ca propre.
Marsh Posté le 27-08-2002 à 10:21:38
Joel F a écrit a écrit : Ben faut utiliser le vector de la STL qui fais tout ca propre. |
Commence pas à l'embrouiller avec le C++. quand il maitrisera mieu le C on verra
Marsh Posté le 27-08-2002 à 10:23:30
oups desole ...
ben sinon y a toujours
Code :
|
mais ca deviens plus chiant la tout de suite ...
Marsh Posté le 27-08-2002 à 10:30:11
Joel F a écrit a écrit : oups desole ... ben sinon y a toujours
|
ha yes pas con ca !!!!
j avais pas penser a faire definir une structure propre
merci mister
Marsh Posté le 27-08-2002 à 10:35:55
Lenoiche a écrit a écrit : je voudrais savoi une chose j'ai cette declarations de variable
|
Segmentation fault (core dumped).
Marsh Posté le 27-08-2002 à 10:38:21
Jar Jar a écrit a écrit : Segmentation fault (core dumped). |
Pas nécessairement
Marsh Posté le 27-08-2002 à 10:40:38
Jar Jar a écrit a écrit : Segmentation fault (core dumped). |
La mémoire ne peut être "Read"
Marsh Posté le 27-08-2002 à 10:45:40
letoII a écrit a écrit : Pas nécessairement |
Hélas non. Mais l'utilisation d'un malloc debugger le fera arriver.
Marsh Posté le 27-08-2002 à 10:49:15
Jar Jar a écrit a écrit : Hélas non. Mais l'utilisation d'un malloc debugger le fera arriver. |
arretez de vous battre mes amis !!!
vu que joel m a donne une autre perspective et du coup j aurais pas a faire des trucs de barbares
Marsh Posté le 27-08-2002 à 10:55:16
Lenoiche a écrit a écrit : sinan y a t'il une instruction qui permette de me donner la taille d'un tableau ??? |
Par taille, tu veux dire le nb (max) d'elements?
Si c'est vraiment un tableau et qu'il a au moins un element, en C, tu peux faire: sizeof(T)/sizeof(T[0]).
A+,
Marsh Posté le 27-08-2002 à 10:55:46
au sujet de la structure Tableau de joel
struct Tableau
{
int* valeur;
int taille;
}Variable[64];
comment on fait appelle au champs taille
Variable.taille suffit ou bient Variable[].taille ????
Marsh Posté le 27-08-2002 à 11:00:43
L'instruction :
Code :
|
fait 2 choses : elle définit un type structure, et déclare une variable de type tableau de cette structure (au passage, il aurait mieux valu couper en 2 cette instruction... )
"Variable" est donc un tableau de "struct Tableau". "taille" est un champ de la "struct Tableau". Par conséquent, il faut donc accéder à une des entrées du tableau "Variable", pour pouvoir accéder au champ "taille" de cette entrée-là.
Donc : Variable[i].taille, où i est un entier.
Marsh Posté le 27-08-2002 à 11:00:56
Lenoiche a écrit a écrit : au sujet de la structure Tableau de joel struct Tableau { int* valeur; int taille; }Variable[64]; comment on fait appelle au champs taille Variable.taille suffit ou bient Variable[].taille ???? |
Ben comme t'as fait un tableau:
Code :
|
Marsh Posté le 27-08-2002 à 11:01:54
Lenoiche a écrit a écrit : au sujet de la structure Tableau de joel struct Tableau { int* valeur; int taille; }Variable[64]; comment on fait appelle au champs taille Variable.taille suffit ou bient Variable[].taille ???? |
euh, tu te loupes un peu la !! ce que tu fais, c'est déclarer un tableau de 64 structures !!!
je suppose que joel voulait te faire stocker tes valeurs dans le champ valeur, alloué préalablement en fonction du champ taille.
donc :
tableau.taille = 64;
tableau.valeur = (int *)malloc(sizeof(int) * tableau.taille);
Marsh Posté le 27-08-2002 à 11:02:14
BifaceMcLeOD a écrit a écrit : Pas assez rapide, petit scarabée... |
argh!
Marsh Posté le 27-08-2002 à 11:04:45
non tu l'utilise comme ca.
Code :
|
bon la c du brut de decoffrage, faut continuer dans ce style.
Marsh Posté le 27-08-2002 à 11:06:06
Harkonnen a écrit a écrit : euh, tu te loupes un peu la !! ce que tu fais, c'est déclarer un tableau de 64 structures !!! je suppose que joel voulait te faire stocker tes valeurs dans le champ valeur, alloué préalablement en fonction du champ taille. donc : tableau.taille = 64; tableau.valeur = (int *)malloc(sizeof(int) * tableau.taille); |
je ne comprends pas trop
comment j accede aux valuer du tableau ????
Marsh Posté le 27-08-2002 à 11:06:56
Confere mon poste + haut
tu utilise getValeur( tab, index )
Marsh Posté le 27-08-2002 à 11:09:26
Lenoiche a écrit a écrit : je ne comprends pas trop comment j accede aux valuer du tableau ???? |
laisse tomber, c'est moi qui me suis loupé !
mais mon idée est plausible aussi ! pour y accéder, tu fais tableau.valeur[i], ou i est compris entre 0 et tableau.taille.
par contre, il ne faut pas oublier de faire un free(tableau.valeur) à la fin de ton programme
Marsh Posté le 27-08-2002 à 11:09:52
Un exemple complet :
Code :
|
Marsh Posté le 27-08-2002 à 11:10:00
Lenoiche a écrit a écrit : je ne comprends pas trop comment j accede aux valuer du tableau ???? |
ha oui j ai compris
en gros
struct Tableau
{
int valeur[64];
int taille;
}variable;
prefere comem ca car je maitrise pas bien les allocations
Marsh Posté le 27-08-2002 à 11:13:53
gilou a écrit a écrit : Par taille, tu veux dire le nb (max) d'elements? Si c'est vraiment un tableau et qu'il a au moins un element, en C, tu peux faire: sizeof(T)/sizeof(T[0]). A+, |
ben en fait j ai une varible de type char *nom
et donc la taille varie souvent ....
Marsh Posté le 27-08-2002 à 11:13:58
Lenoiche a écrit a écrit : ha oui j ai compris en gros struct Tableau { int valeur[64]; int taille; }variable; prefere comem ca car je maitrise pas bien les allocations |
euh, ça va pour un tableau de 64 valeurs, mais si tu ne connais pas le nombre d'éléments à l'avance, tu es obligé de passer par une allocation !
autre chose : si tu avais par exemple un tableau de structures au lieu d'un tableau d'int, avec un nombre d'éléments assez conséquents, ta solution aurait toutes les chances de saturer la pile !!
Marsh Posté le 27-08-2002 à 11:16:08
Harkonnen a écrit a écrit : euh, ça va pour un tableau de 64 valeurs, mais si tu ne connais pas le nombre d'éléments à l'avance, tu es obligé de passer par une allocation ! autre chose : si tu avais par exemple un tableau de structures au lieu d'un tableau d'int, avec un nombre d'éléments assez conséquents, ta solution aurait toutes les chances de saturer la pile !! |
ha oui c vrai tu as tout a fait raison et si je fais ca !!!
donc je fais comme Joel a dis
merci messieurs
Marsh Posté le 27-08-2002 à 11:16:40
Lenoiche a écrit a écrit : ben en fait j ai une varible de type char *nom et donc la taille varie souvent .... |
comment ça la taille varie ??
un char reste un char (généralement un octet)...
Marsh Posté le 27-08-2002 à 11:17:59
Harkonnen a écrit a écrit : comment ça la taille varie ?? un char reste un char (généralement un octet)... |
la taille de la chaine ....
Marsh Posté le 27-08-2002 à 11:20:05
Lenoiche a écrit a écrit : la taille de la chaine .... |
ouh la la ... tu fais de la réallocation dynamique de chaine de caractère ???
et tu penses à chaque fois à terminer par '\0' ?
tu me fais peur la...
Marsh Posté le 27-08-2002 à 11:20:28
si c pour une chaîne de caractères, tu met un '\0' à la fin et tu utilise strlen (string.h)...
Marsh Posté le 27-08-2002 à 11:33:39
letoII a écrit a écrit : si c pour une chaîne de caractères, tu met un '\0' à la fin et tu utilise strlen (string.h)... |
houlalalalalalala
bon vé me cacher moa
Marsh Posté le 29-08-2002 à 02:47:15
gilou a écrit a écrit : Si c'est vraiment un tableau et qu'il a au moins un element,... |
Un tableau ne peut pas avoir 0 éléments.
En se prenant bien la tête:
Code :
|
Marsh Posté le 27-08-2002 à 09:38:19
je voudrais savoi une chose
j'ai cette declarations de variable
et je voudrais savoir que renvois la valeur nom[65]
elle renvoie la veleur NULL ???
Message édité par Lenoiche le 27-08-2002 à 10:54:36