CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

programme en C : quel est le probleme???

ohunshadok
ohunshadok
Niveau 10
03 avril 2005 à 11:45:26

j´ai un programme basé sur un chainage, chainé de maniere croissante en fonction du temps enregistré dans la structure.

Dans cette fonction, il sagit de modifié le temps d´un maillon et de le replacer au bon endroit.

voila comme cela se présente, je simplifierai les petites choses pour cibler le probleme qui se pose.

void changement(TAB T[])
{
/ / il n´y a pas de probleme de déclaration de variable

/ / on me donne des parametres qui me disent quel maillon modifié

sp = RECHERCHE(/*j´envoie les parametres*/)
/ / cette fonction me renvoit un double pointeur positionnant le maillon qui doit etre modifié

/ / je saute les erreurs eventuelles

/ / VOICI MON PROBLEME
pnouv = ( VOL *) malloc ( sizeof(VOL));
pnouv->tot = *sp->tot;
pnouv->lib ) *sp->lib;
/ /je lis les nouvelles valeurs a modifier, par exemple X etY
pnouv->ref = X;
pnouv->heyre = Y;

SUPP(sp) / /fonction qui supprime le maillon et qui " relie" les maillons adjacents, pas de probleme dans cette fonction

/ / FIN DE MON PROBLEME

Mon prof m´a tout rayé en me mettant un beau " INCONCEVABLE"

mais en quoi est ce inconcevable???? si qq1 a une idée, merci d´avance

neg282
neg282
Niveau 7
03 avril 2005 à 15:35:48

je vois pas trop pourquoi c´est inconcevable.
Mais il y a une petite erreur :

tu n´a pas le droit d´écrire :

pnouv->tot = *sp->tot;

il faut mettre :

pnouv->tot = ( *sp)->tot;

ohunshadok
ohunshadok
Niveau 10
03 avril 2005 à 18:42:11

toi non plus tu vois pas... c´est d´autant plus enervant que ct sur une copie notée...

stormseedle
stormseedle
Niveau 8
08 avril 2005 à 19:33:57

pnouv->tot = ( *sp)->tot;
pas besoin l´etoile et prioritaire sur la fleche mais je dois avouer que ton truc est bizarre :

  • sp ds des lignes de codes est cense renvoye la valeur de la donne pointer

par exemple si je declare
int *a=(*int)maloc(sizeof(int));

  • a=5;

en gros j´ai mis 5 ds a
L´utilite de l´etoile ds le cas me semble inutile(et fausse en fait)
en effet
sp->tot va renvoyer une strucure du type tot si sp est un pointeur sinon tu utilise sp.tot si sp est une variable. Aucune raison d´utiliser une etoile ici.
En plus ds le malloc on met ( *VOL) et pas VOL*

ohunshadok
Posté le 03 avril 2005 à 11:45:26
j´ai un programme basé sur un chainage, chainé de maniere croissante en fonction du temps enregistré dans la structure.

Dans cette fonction, il sagit de modifié le temps d´un maillon et de le replacer au bon endroit.

voila comme cela se présente, je simplifierai les petites choses pour cibler le probleme qui se pose.

void changement(TAB T[])
{
/ / il n´y a pas de probleme de déclaration de variable

/ / on me donne des parametres qui me disent quel maillon modifié

sp = RECHERCHE(/*j´envoie les parametres*/)
/ / cette fonction me renvoit un double pointeur positionnant le maillon qui doit etre modifié

/ / je saute les erreurs eventuelles

/ / VOICI MON PROBLEME
pnouv = ( VOL *) malloc ( sizeof(VOL));
/ /correction de ma part
pnouv->tot = sp->tot;
pnouv->lib= sp->lib;
/ / je lis les nouvelles valeurs a modifier, par exemple X etY
pnouv->ref = X;
pnouv->heure = Y;
/
mais ce serait bien que tu donnes tout le code de la fonction je pense que tu as fais des erreurs au niveau de la gestion de la memoire

ohunshadok
ohunshadok
Niveau 10
08 avril 2005 à 20:17:30

c´est bon, j´ai eu l´explication du prof

en fait, c pas un problem d´étoile ( ca c bon, dommage pour ta démonstration lol). ni de redaction d´ailleurs, c´est juste de logique.

en fait, il fallait juste changer les variables et replacer la structure dans le bon ordre. ca servait a rien de faire un malloc, de recopier, pis de placer le maillon.

voila ^^

stormseedle
stormseedle
Niveau 8
08 avril 2005 à 21:19:04

ok mais je maintiens que te etoiles etaient bizarre. Mais la prochaine fois donne tout l´algo ce sera plus facile de corriger. Au fait tu es en quoi ? moi perso je suis en premier annee de dut info

ohunshadok
ohunshadok
Niveau 10
09 avril 2005 à 01:28:06

pareil, 1er année de DUT info a rené descartes sur paris.

et j´ai tjs appris a faire le malloc et les modifications de chainage de cette maniere lol.
2 enseignements differents on dirait ^^

dnob700
dnob700
Niveau 10
09 avril 2005 à 01:44:37

les étoiles ne sont pas bizarre, tu manque juste d´imagination,

suppose que son sp soit déclaré comme
VOL** sp;
alors il faut bien écrire *sp->bidule pour s´en servir après qu´il soit correctement initialisé.
et puis pour le malloc tu te trompe aussi je pense ( je ne me sers pas de malloc, mais pour les cast ça se fait dans l´autre sens ( comme la fait ohunshadok))

stormseedle
stormseedle
Niveau 8
09 avril 2005 à 23:41:36

autant pr moi j´ai dit une connerie lol

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment