J'aurais besoin de stoquer (en mémoire) une liste dynamique
d'objets O de taille 8.
La solution "liste chainée" est couteuse, dans le sens ou
l'overhead mémoire est de "sizeof(*O)" qui vaut vite 4
(sans compter que malloc il doit bien utiliser un peu
de mémoire quelque part pour se souvenir qu'il a alloué
ce bout de mémoire là).
J'avais donc pensé à une solution ou l'on alloue des
tableaux, et on chaine les tableaux.
Je dois pas être le premier à penser à ça, vous avez
des pointeurs ?
Marc Boyer
--
Lying for having sex or lying for making war? Trust US presidents :-(
| In 'fr.comp.lang.c', Gabriel Dos Reis wrote: | | > Emmanuel Delahaye writes: | > | >| > A part ça, c'est quoi 'obstack' ?. | >| | >| Bon, OK, du gnu C... passons... | > | > Non. Un truc de la GLIBC. | | Bref, c'est pas standard
et alors ?
| et probablement bourré de gnuismes...
Ah bon ? Ça marche même avec des compilos K&R.
-- Gaby
Emmanuel Delahaye <emdelYOURBRA@noos.fr> writes:
| In 'fr.comp.lang.c', Gabriel Dos Reis <gdr@integrable-solutions.net> wrote:
|
| > Emmanuel Delahaye <emdelYOURBRA@noos.fr> writes:
| >
| >| > A part ça, c'est quoi 'obstack' ?.
| >|
| >| Bon, OK, du gnu C... passons...
| >
| > Non. Un truc de la GLIBC.
|
| Bref, c'est pas standard
| In 'fr.comp.lang.c', Gabriel Dos Reis wrote: | | > Emmanuel Delahaye writes: | > | >| > A part ça, c'est quoi 'obstack' ?. | >| | >| Bon, OK, du gnu C... passons... | > | > Non. Un truc de la GLIBC. | | Bref, c'est pas standard
et alors ?
| et probablement bourré de gnuismes...
Ah bon ? Ça marche même avec des compilos K&R.
-- Gaby
Gabriel Dos Reis
DINH Viêt Hoà writes:
| | > Emmanuel Delahaye writes: | > | > | > A part ça, c'est quoi 'obstack' ?. | > | | > | Bon, OK, du gnu C... passons... | > | > Non. Un truc de la GLIBC. | | GLIBC = GNU libc donc, effectivement lié au GNU.
Le monsieur avait dit GNU C. Faut suivre.
-- Gaby
DINH Viêt Hoà <dinh.viet.hoa@free.fr> writes:
|
| > Emmanuel Delahaye <emdelYOURBRA@noos.fr> writes:
| >
| > | > A part ça, c'est quoi 'obstack' ?.
| > |
| > | Bon, OK, du gnu C... passons...
| >
| > Non. Un truc de la GLIBC.
|
| GLIBC = GNU libc donc, effectivement lié au GNU.
| | > Emmanuel Delahaye writes: | > | > | > A part ça, c'est quoi 'obstack' ?. | > | | > | Bon, OK, du gnu C... passons... | > | > Non. Un truc de la GLIBC. | | GLIBC = GNU libc donc, effectivement lié au GNU.
Le monsieur avait dit GNU C. Faut suivre.
-- Gaby
Erwan David
Gabriel Dos Reis écrivait :
Emmanuel Delahaye writes:
| In 'fr.comp.lang.c', Gabriel Dos Reis wrote: | | > Emmanuel Delahaye writes: | > | >| > A part ça, c'est quoi 'obstack' ?. | >| | >| Bon, OK, du gnu C... passons... | > | > Non. Un truc de la GLIBC. | | Bref, c'est pas standard
et alors ?
| et probablement bourré de gnuismes...
Ah bon ? Ça marche même avec des compilos K&R.
Mais tout le bordel qui est dans la glibc n'est pas du c standard...
-- Monde de merde
Gabriel Dos Reis <gdr@integrable-solutions.net> écrivait :
Emmanuel Delahaye <emdelYOURBRA@noos.fr> writes:
| In 'fr.comp.lang.c', Gabriel Dos Reis <gdr@integrable-solutions.net> wrote:
|
| > Emmanuel Delahaye <emdelYOURBRA@noos.fr> writes:
| >
| >| > A part ça, c'est quoi 'obstack' ?.
| >|
| >| Bon, OK, du gnu C... passons...
| >
| > Non. Un truc de la GLIBC.
|
| Bref, c'est pas standard
et alors ?
| et probablement bourré de gnuismes...
Ah bon ? Ça marche même avec des compilos K&R.
Mais tout le bordel qui est dans la glibc n'est pas du c standard...
| In 'fr.comp.lang.c', Gabriel Dos Reis wrote: | | > Emmanuel Delahaye writes: | > | >| > A part ça, c'est quoi 'obstack' ?. | >| | >| Bon, OK, du gnu C... passons... | > | > Non. Un truc de la GLIBC. | | Bref, c'est pas standard
et alors ?
| et probablement bourré de gnuismes...
Ah bon ? Ça marche même avec des compilos K&R.
Mais tout le bordel qui est dans la glibc n'est pas du c standard...
-- Monde de merde
Marc Boyer
Emmanuel Delahaye wrote:
In 'fr.comp.lang.c', Marc Boyer wrote:
J'avais pensé liste chainee parce que c'est l'existant, mais en décrivant le problème, je réalise que c'est absolument pas adapté.
Je confirme : tableau dynamique + realloc()
La question suivante est: quelle stratégie d'agrandissement/réduction ? Je me contente de demander la taille exactement nécessaire, en faisant confiance à realloc ? Quand c'est trop petit, j'augmente linéairement, expotiennellement (idem pour le "trop grand") ? Je pensais à un petit facteur exponentiel (genre +25%).
et j'ajoute memmove() + memcpy() pour les insertions. Accès rapide par bsearch().
Oui, tout à fait.
Marc Boyer -- Lying for having sex or lying for making war? Trust US presidents :-(
Emmanuel Delahaye wrote:
In 'fr.comp.lang.c', Marc Boyer <Marc.Boyer@enseeiht.yahoo.fr> wrote:
J'avais pensé liste chainee parce que c'est l'existant,
mais en décrivant le problème, je réalise que c'est absolument
pas adapté.
Je confirme : tableau dynamique + realloc()
La question suivante est: quelle stratégie d'agrandissement/réduction ?
Je me contente de demander la taille exactement nécessaire, en faisant
confiance à realloc ? Quand c'est trop petit, j'augmente linéairement,
expotiennellement (idem pour le "trop grand") ?
Je pensais à un petit facteur exponentiel (genre +25%).
et j'ajoute memmove() + memcpy() pour les insertions.
Accès rapide par bsearch().
Oui, tout à fait.
Marc Boyer
--
Lying for having sex or lying for making war? Trust US presidents :-(
J'avais pensé liste chainee parce que c'est l'existant, mais en décrivant le problème, je réalise que c'est absolument pas adapté.
Je confirme : tableau dynamique + realloc()
La question suivante est: quelle stratégie d'agrandissement/réduction ? Je me contente de demander la taille exactement nécessaire, en faisant confiance à realloc ? Quand c'est trop petit, j'augmente linéairement, expotiennellement (idem pour le "trop grand") ? Je pensais à un petit facteur exponentiel (genre +25%).
et j'ajoute memmove() + memcpy() pour les insertions. Accès rapide par bsearch().
Oui, tout à fait.
Marc Boyer -- Lying for having sex or lying for making war? Trust US presidents :-(
Erwan David
Gabriel Dos Reis écrivait :
Marc Boyer writes:
| J'avais donc pensé à une solution ou l'on alloue des | tableaux, et on chaine les tableaux.
Tu veux parler du « pool allocator », §19.4.2, TC++PL3 ?
C'est quoi "§19.4.2, TC++PL3" ?
-- Monde de merde
Gabriel Dos Reis <gdr@integrable-solutions.net> écrivait :
Marc Boyer <Marc.Boyer@enseeiht.yahoo.fr> writes:
| J'avais donc pensé à une solution ou l'on alloue des
| tableaux, et on chaine les tableaux.
Tu veux parler du « pool allocator », §19.4.2, TC++PL3 ?
Marc Boyer writes: | J'avais donc pensé à une solution ou l'on alloue des | tableaux, et on chaine les tableaux.
Tu veux parler du « pool allocator », §19.4.2, TC++PL3 ?
C'est quoi "§19.4.2, TC++PL3" ?
Paragraphe 19.4.2 du livre "The C++ Programming Langage", troisième édition..
Ah...
-- Monde de merde
Gabriel Dos Reis
Erwan David writes:
| Gabriel Dos Reis écrivait : | | > Emmanuel Delahaye writes: | > | > | In 'fr.comp.lang.c', Gabriel Dos Reis wrote: | > | | > | > Emmanuel Delahaye writes: | > | > | > | >| > A part ça, c'est quoi 'obstack' ?. | > | >| | > | >| Bon, OK, du gnu C... passons... | > | > | > | > Non. Un truc de la GLIBC. | > | | > | Bref, c'est pas standard | > | > et alors ? | > | > | et probablement bourré de gnuismes... | > | > Ah bon ? Ça marche même avec des compilos K&R. | | Mais tout le bordel qui est dans la glibc n'est pas du c standard...
C'est vrai. Mais obstack compile avec un compilateur C autre que pour GNU C.
-- Gaby
Erwan David <erwan@rail.eu.org> writes:
| Gabriel Dos Reis <gdr@integrable-solutions.net> écrivait :
|
| > Emmanuel Delahaye <emdelYOURBRA@noos.fr> writes:
| >
| > | In 'fr.comp.lang.c', Gabriel Dos Reis <gdr@integrable-solutions.net> wrote:
| > |
| > | > Emmanuel Delahaye <emdelYOURBRA@noos.fr> writes:
| > | >
| > | >| > A part ça, c'est quoi 'obstack' ?.
| > | >|
| > | >| Bon, OK, du gnu C... passons...
| > | >
| > | > Non. Un truc de la GLIBC.
| > |
| > | Bref, c'est pas standard
| >
| > et alors ?
| >
| > | et probablement bourré de gnuismes...
| >
| > Ah bon ? Ça marche même avec des compilos K&R.
|
| Mais tout le bordel qui est dans la glibc n'est pas du c standard...
C'est vrai. Mais obstack compile avec un compilateur C autre que pour GNU C.
| Gabriel Dos Reis écrivait : | | > Emmanuel Delahaye writes: | > | > | In 'fr.comp.lang.c', Gabriel Dos Reis wrote: | > | | > | > Emmanuel Delahaye writes: | > | > | > | >| > A part ça, c'est quoi 'obstack' ?. | > | >| | > | >| Bon, OK, du gnu C... passons... | > | > | > | > Non. Un truc de la GLIBC. | > | | > | Bref, c'est pas standard | > | > et alors ? | > | > | et probablement bourré de gnuismes... | > | > Ah bon ? Ça marche même avec des compilos K&R. | | Mais tout le bordel qui est dans la glibc n'est pas du c standard...
C'est vrai. Mais obstack compile avec un compilateur C autre que pour GNU C.
-- Gaby
Gabriel Dos Reis
"Antoine Leca" writes:
| Gabriel Dos Reis écrivit: | > Emmanuel Delahaye writes: | > | >>> A part ça, c'est quoi 'obstack' ?. | >> | >> Bon, OK, du gnu C... passons... | > | > Non. Un truc de la GLIBC. | | Tiens, vous l'avez viré de gcc (ou GCC, comme tu veux) ?
| Gabriel Dos Reis écrivit:
| > Emmanuel Delahaye <emdelYOURBRA@noos.fr> writes:
| >
| >>> A part ça, c'est quoi 'obstack' ?.
| >>
| >> Bon, OK, du gnu C... passons...
| >
| > Non. Un truc de la GLIBC.
|
| Tiens, vous l'avez viré de gcc (ou GCC, comme tu veux) ?
| Gabriel Dos Reis écrivit: | > Emmanuel Delahaye writes: | > | >>> A part ça, c'est quoi 'obstack' ?. | >> | >> Bon, OK, du gnu C... passons... | > | > Non. Un truc de la GLIBC. | | Tiens, vous l'avez viré de gcc (ou GCC, comme tu veux) ?
Je viens d'ecrire un "tableau dynamique". Basiquement, c'est un tableau, encapsule dans une structure, qui croit au fur et a mesure que tu ajoutes des objets. Si ca t'interesse, le code est en ligne sur http://www.bmt.dnsalias.org/employment, rubrique projets, tout en bas de la page.
Je viens d'ecrire un "tableau dynamique". Basiquement, c'est un tableau,
encapsule dans une structure, qui croit au fur et a mesure que tu
ajoutes des objets. Si ca t'interesse, le code est en ligne sur
http://www.bmt.dnsalias.org/employment, rubrique projets, tout en bas de
la page.
Je viens d'ecrire un "tableau dynamique". Basiquement, c'est un tableau, encapsule dans une structure, qui croit au fur et a mesure que tu ajoutes des objets. Si ca t'interesse, le code est en ligne sur http://www.bmt.dnsalias.org/employment, rubrique projets, tout en bas de la page.