probleme d'allocation c99 (Debutant!) - C - Programmation
Marsh Posté le 23-11-2005 à 06:15:30
Si tu fais des trucs C99 (la déclaration de i à l'intérieur du for en l'occurence) et que tu utilises gcc comme ça semble être le cas, il faut compiler avec -std=c99.
Edit : ça n'a rien à voir avec ton problème, mais dans ton morceau de code tu n'initialises par m.
Marsh Posté le 23-11-2005 à 18:36:00
merci,
et justement maintenant j'ai un probleme pour intialiser m!
de l'aide svp
Marsh Posté le 23-11-2005 à 19:45:05
mador a écrit : merci, |
On est censés deviner quel est le problème ? Poste le code avec les balises 'fixed' ou 'cpp'.
J'ai quand même idée que tu dois faire une saisie, alors autant le faire bien tout de suite.
http://mapage.noos.fr/emdel/notes.htm#saisie
http://mapage.noos.fr/emdel/notes.htm#fichiers
Marsh Posté le 24-11-2005 à 01:27:22
En fait c'est bon j'ai compris mon probleme, desolé j'etais dans mon délire!
Mais un nouveau se pose:
Mon programme rempli un tableau dans le desordre :
YhFS9QwxVw/jo[ |
Et je voudrais pouvoir l'afficher en temps reel, c'est a dire au fur et a mesure qu'il se rempli.
Merci de me donner des conseil.
Marsh Posté le 24-11-2005 à 01:29:22
mador a écrit : En fait c'est bon j'ai compris mon probleme, desolé j'etais dans mon délire!
|
Marsh Posté le 24-11-2005 à 01:35:27
tu veut afficher en temps réel le tableau au fur et a mesure que le programme le remplit ? dans ce cas je crois que tu va voir un problème de lenteur, du coté utilisateur ...
Marsh Posté le 24-11-2005 à 05:31:32
Faudra être plus précis si tu veux de l'aide. Tu as un tableau de pointeurs vers des tableaux d'int... Dans tous ça c'est quoi ce "YhFS9QwxVw/jo[" que tu veux afficher ?
Marsh Posté le 29-11-2005 à 16:45:47
mador a écrit : voila comment jai proceder:
|
Tu fais erreur, "malloc" ne remplit pas une zone, il l'alloue. Schématiquement, tu as une grosse zone mémoire de 512Mo évidemment remplie de tout ce que l'ordinateur y a mis avec les différents programmes qui se sont exécutés depuis son démarrage.
Puis, tu demandes à "malloc" de te réserver une zone. Ben "malloc" pose un verrou à un certain endroit de la mémoire et dit "à partir de là et de maintenant, les n octets suivants sont à moi". Dans cette procédure, il n'y a pas de remplissage.
Maintenant, si tu affiches les "n" octets que malloc t'a réservé, ben tu n'affiches que leur contenu résiduel...
Marsh Posté le 29-11-2005 à 19:16:21
Faudrait pas oublier non plus que malloc peut échouer, donc il faudrait tester les retours.
Il faudra penser aussi à désallouer la mémoire avec des free bien placés.
Marsh Posté le 23-11-2005 à 03:04:11
bonjour,
je dois alloué un tableau a 2 dimension, voila comment jai proceder:
int n,m;
printf("entrer la dimension du tableau:\n" );
scanf("%d",&n);
int **tab;
tab=malloc(n * sizeof * tab);
for (int i=0;i<n;i++)
{
tab[i]=malloc(m * sizeof * (tab[i]));
}
Et mon compilateur (terminal sous mandralinux 10.1) me dit que dans la fonction 'calcul' il y a une erreur:
'for' loop initial declaration used outside c99 mode
Merci d'avance pour votre aide,
a bientot.