Des kheys chauds en info/algorithmie/C ?
- 1
Yo les kheys
Je suis en train de m'entrainer en C sur le site France-IOI pour ceux qui connaissent. Je suis arrivé au chapitre efficacité temporelle et je bloque sévère sur un exercice. Le problème doit venir des limitations présentes dans l'énoncé
voilà, à partir de là j'ai élaboré un code, qui passe 18 tests sur les 20 requis pour valider l'exercice.
Si jamais des kheys voient comment améliorer ça niveau mémoire, ou changer complètement l'algo je serai vraiment reconnaissant
Merci d'avance pour vos réponses
Le 06 février 2024 à 18:53:11 :
Déplace le free juste après le malloc, t'auras plus de problèmes de mémoire
ayaa avec de l'alcool dans le sang je l'ai déplacé sans réfléchir
Le 06 février 2024 à 19:30:47 :
Le 06 février 2024 à 18:53:11 :
Déplace le free juste après le malloc, t'auras plus de problèmes de mémoireayaa avec de l'alcool dans le sang je l'ai déplacé sans réfléchir
Ahahahahaha
Ah et si c'est la mémoire qui fait défaut je pense que plutôt que de coder sur un bool tu peux coder sur un bit.
Ça changera pas beaucoup les perf je pense, mais tu gagnera en mémoire d'un facteur 10
Ça risque d'être un chouilla plus délicat à écrire
Merci khey
Je suppose qu’elle ne pointe pas vers null parce que les 18 premiers tests passent ça aurait crash avant non ?
J’ai essayé avec un tableau de bits aussi ! Au final ça garde le même résultat : les mêmes 18 tests marchent, mais 2 foirent, j’hésite à envoyer le problème à un de mes profs parce que je comprends franchement pas
Le 07 février 2024 à 11:29:18 :
Merci kheyJe suppose qu’elle ne pointe pas vers null parce que les 18 premiers tests passent ça aurait crash avant non ?
J’ai essayé avec un tableau de bits aussi ! Au final ça garde le même résultat : les mêmes 18 tests marchent, mais 2 foirent, j’hésite à envoyer le problème à un de mes profs parce que je comprends franchement pas
Tu peux pas avoir un retour à chacun des 20 tests pour pouvoir déboguer ? Car j'avoue que sans avoir un moyen de déboguer c'est compliqué de voir ce qui ne va pas ou alors c'est un test des cas particuliers
Quand t'allais un tableau de bit tu allouais bien un tableau 8 fois plus petit (+1 octet en rab')
Malheureusement c’est des tests en aveugle, je n’ai aucune idée de ce que ça teste
Euh oui il me semble
test déjà le retour de ton calloc et quitte ton programme si le pointeur retourné est null lors du 18 et 19e test, si c'est un problème d'allocation tu en auras le cœur net vu que le retour sera différent
vu que tu n'as pas malheureusement d'autres retours possible pour débogage tente peut-être de placer des sorties de ton programme en plein milieu de l'algo, pour déterminer à quel ligne se situe le dépassement ?
okay du coup, j'ai ajouté
if (presence == NULL) {
printf("Erreur: Mémoire insuffisante\n");
return 1;
}
et relancé les tests, cela ne change rien et ne me donne pas plus d'informations
Le problème est que je ne peux pas lancer les tests individuellement, c'est un bouton unique qui les lance tous, sans donner plus de précision
- 1
Données du topic
- Auteur
- TopicNorman7
- Date de création
- 6 février 2024 à 18:50:51
- Nb. messages archivés
- 16
- Nb. messages JVC
- 13