Lorsque l'on défini une fonction, peut-elle retourner un pointeur
(tableau) ?
Actuellement, j'ai défini quelques fonctions du type :
void MaFonction (char Data1, char Data2)
{
le calcul...
Resultat[0] = ?;
Resultat[1] = ?;
}
Pour réutiliser mon tableau Resultat et ces données dans le main, je
le défini donc en variables globale (char Resultat[2]). Mais je trouve
que cette méthode n'est pas très simple à utiliser par la suite... en
effet, dans le main je me retrouve avec des fonctions :
Mafonction (Octet1, Octet2)
et faut ensuite se souvenir de quelle variable globale y est
associé...
J'aimerais donc savoir si il est possible en C (j'ai encore beaucoup à
découvir) d'avoir une fonction du style : Resultat =
MaFonction(Octet1, Octet2) avec Resultat comme tableau...
Faut-il faire jouer les pointeurs là dedans ?
J'ai essayé :
Char * MaFonction (char Data1, char Data2)
{
char Resultat[2];
mes calculs... (Resultat[0] = ?, Resultat[1]=?)
return Resultat;
}
puis dans le main :
Resultat[0]=Mafonction(Octet1, Octet2)
Mais Resultat[1] n'est pas correct...
Si vous avez une piste à ce sujet pour obtenir ce que je souhaite...
Je vous remercie,
TA
| | > Non, c'est plutôt l'heure de sortir pour aller faire la fête.
T'habite dans le nord ?
Non, mais ce n'est pas une raison de ne pas faire la fête :-) Si tu veux deviner vers quelle grande ville j'habite, la grande fête est pour ce soir (8 décembre).
-- Richard
|
| > Non, c'est plutôt l'heure de sortir pour aller faire la fête.
T'habite dans le nord ?
Non, mais ce n'est pas une raison de ne pas faire la fête :-)
Si tu veux deviner vers quelle grande ville j'habite, la grande fête est
pour ce soir (8 décembre).
| | > Non, c'est plutôt l'heure de sortir pour aller faire la fête.
T'habite dans le nord ?
Non, mais ce n'est pas une raison de ne pas faire la fête :-) Si tu veux deviner vers quelle grande ville j'habite, la grande fête est pour ce soir (8 décembre).
-- Richard
DINH Viêt Hoà
Non, mais ce n'est pas une raison de ne pas faire la fête :-) Si tu veux deviner vers quelle grande ville j'habite, la grande fête est pour ce soir (8 décembre).
lyon !
-- DINH V. Hoa,
etPan! - newsreader, mail user agent -- http://libetpan.sf.net/etpan
Non, mais ce n'est pas une raison de ne pas faire la fête :-)
Si tu veux deviner vers quelle grande ville j'habite, la grande fête est
pour ce soir (8 décembre).
lyon !
--
DINH V. Hoa,
etPan! - newsreader, mail user agent -- http://libetpan.sf.net/etpan
Non, mais ce n'est pas une raison de ne pas faire la fête :-) Si tu veux deviner vers quelle grande ville j'habite, la grande fête est pour ce soir (8 décembre).
lyon !
-- DINH V. Hoa,
etPan! - newsreader, mail user agent -- http://libetpan.sf.net/etpan
tessierNO
Richard Delorme wrote:
Je ne suis pas d'accord, le tableau et la liste chainée ont des applications différentes et ne sont pas uniquement des zones de stockage. La liste chainée est particulièrement utile quand on pratique des suppressions et des insertions d'éléments quelconques, et explose dans ce cas, le tableau. On peut concevoir des liste chainées avec un minimum d'allocation, et même
Un minimum d'allocations, tu veux dire que tu alloues un grand tableau et tu pioches dedans quand tu as besoin d'une cellule. Tu réalloues si nécessaire et tu gères les cellules libres dans une pile par exemple ?
en utilisant que de la mémoire automatique.
Qu'entends-tu par "mémoire automatique" ?
Gaël
Richard Delorme wrote:
Je ne suis pas d'accord, le tableau et la liste chainée ont des applications
différentes et ne sont pas uniquement des zones de stockage. La liste
chainée est particulièrement utile quand on pratique des suppressions et
des insertions d'éléments quelconques, et explose dans ce cas, le tableau.
On peut concevoir des liste chainées avec un minimum d'allocation, et même
Un minimum d'allocations, tu veux dire que tu alloues un grand tableau
et tu pioches dedans quand tu as besoin d'une cellule. Tu réalloues si
nécessaire et tu gères les cellules libres dans une pile par exemple ?
Je ne suis pas d'accord, le tableau et la liste chainée ont des applications différentes et ne sont pas uniquement des zones de stockage. La liste chainée est particulièrement utile quand on pratique des suppressions et des insertions d'éléments quelconques, et explose dans ce cas, le tableau. On peut concevoir des liste chainées avec un minimum d'allocation, et même
Un minimum d'allocations, tu veux dire que tu alloues un grand tableau et tu pioches dedans quand tu as besoin d'une cellule. Tu réalloues si nécessaire et tu gères les cellules libres dans une pile par exemple ?
en utilisant que de la mémoire automatique.
Qu'entends-tu par "mémoire automatique" ?
Gaël
Richard Delorme
Richard Delorme wrote:
Je ne suis pas d'accord, le tableau et la liste chainée ont des applications différentes et ne sont pas uniquement des zones de stockage. La liste chainée est particulièrement utile quand on pratique des suppressions et des insertions d'éléments quelconques, et explose dans ce cas, le tableau. On peut concevoir des liste chainées avec un minimum d'allocation, et même
Un minimum d'allocations, tu veux dire que tu alloues un grand tableau et tu pioches dedans quand tu as besoin d'une cellule. Tu réalloues si nécessaire et tu gères les cellules libres dans une pile par exemple ?
Oui.
en utilisant que de la mémoire automatique.
Qu'entends-tu par "mémoire automatique" ?
Ce que la norme appelle « automatic storage duration » :
6.2.4 Storage durations of objects
[#1] An object has a storage duration that determines its lifetime. There are three storage durations: static, automatic, and allocated. Allocated storage is described in 7.20.3.
[#3] An object whose identifier is declared with no linkage and without the storage-class specifier static has automatic storage duration. |
La fonction list_print() manipule une liste simple classique et en affiche les éléments. Ces éléments ne sont pas alloués, mais pris dans un tableau dans main(). Le principe est intéressant si on a besoin d'une liste (pour ces propriétés intéressantes) d'une taille relativement faible et connue à l'avance.
-- Richard
Richard Delorme wrote:
Je ne suis pas d'accord, le tableau et la liste chainée ont des
applications différentes et ne sont pas uniquement des zones de stockage.
La liste chainée est particulièrement utile quand on pratique des
suppressions et des insertions d'éléments quelconques, et explose dans ce
cas, le tableau. On peut concevoir des liste chainées avec un minimum
d'allocation, et même
Un minimum d'allocations, tu veux dire que tu alloues un grand tableau
et tu pioches dedans quand tu as besoin d'une cellule. Tu réalloues si
nécessaire et tu gères les cellules libres dans une pile par exemple ?
Oui.
en utilisant que de la mémoire automatique.
Qu'entends-tu par "mémoire automatique" ?
Ce que la norme appelle « automatic storage duration » :
6.2.4 Storage durations of objects
[#1] An object has a storage duration that determines its
lifetime. There are three storage durations: static,
automatic, and allocated. Allocated storage is described in
7.20.3.
[#3] An object whose identifier is declared with no linkage
and without the storage-class specifier static has automatic
storage duration. |
La fonction list_print() manipule une liste simple classique et en affiche
les éléments. Ces éléments ne sont pas alloués, mais pris dans un tableau
dans main().
Le principe est intéressant si on a besoin d'une liste (pour ces propriétés
intéressantes) d'une taille relativement faible et connue à l'avance.
Je ne suis pas d'accord, le tableau et la liste chainée ont des applications différentes et ne sont pas uniquement des zones de stockage. La liste chainée est particulièrement utile quand on pratique des suppressions et des insertions d'éléments quelconques, et explose dans ce cas, le tableau. On peut concevoir des liste chainées avec un minimum d'allocation, et même
Un minimum d'allocations, tu veux dire que tu alloues un grand tableau et tu pioches dedans quand tu as besoin d'une cellule. Tu réalloues si nécessaire et tu gères les cellules libres dans une pile par exemple ?
Oui.
en utilisant que de la mémoire automatique.
Qu'entends-tu par "mémoire automatique" ?
Ce que la norme appelle « automatic storage duration » :
6.2.4 Storage durations of objects
[#1] An object has a storage duration that determines its lifetime. There are three storage durations: static, automatic, and allocated. Allocated storage is described in 7.20.3.
[#3] An object whose identifier is declared with no linkage and without the storage-class specifier static has automatic storage duration. |
La fonction list_print() manipule une liste simple classique et en affiche les éléments. Ces éléments ne sont pas alloués, mais pris dans un tableau dans main(). Le principe est intéressant si on a besoin d'une liste (pour ces propriétés intéressantes) d'une taille relativement faible et connue à l'avance.
-- Richard
Emmanuel Delahaye
In 'fr.comp.lang.c', Richard Delorme wrote:
La fonction list_print() manipule une liste simple classique et en affiche les éléments. Ces éléments ne sont pas alloués, mais pris dans un tableau dans main(). Le principe est intéressant si on a besoin d'une liste (pour ces propriétés intéressantes) d'une taille relativement faible et connue à l'avance.
Ah, un tableau!
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
In 'fr.comp.lang.c', Richard Delorme <abulmo@nospam.fr> wrote:
La fonction list_print() manipule une liste simple classique et en affiche
les éléments. Ces éléments ne sont pas alloués, mais pris dans un tableau
dans main().
Le principe est intéressant si on a besoin d'une liste (pour ces propriétés
intéressantes) d'une taille relativement faible et connue à l'avance.
Ah, un tableau!
--
-ed- emdelYOURBRA@noos.fr [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
La fonction list_print() manipule une liste simple classique et en affiche les éléments. Ces éléments ne sont pas alloués, mais pris dans un tableau dans main(). Le principe est intéressant si on a besoin d'une liste (pour ces propriétés intéressantes) d'une taille relativement faible et connue à l'avance.
Ah, un tableau!
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Gabriel Dos Reis
DINH Viêt Hoà writes:
| | > Non, mais ce n'est pas une raison de ne pas faire la fête :-) | > Si tu veux deviner vers quelle grande ville j'habite, la grande fête est | > pour ce soir (8 décembre). | | lyon !
Arf, c'est pas juste :-/
-- Gaby
DINH Viêt Hoà <dinh.viet.hoa@free.fr> writes:
|
| > Non, mais ce n'est pas une raison de ne pas faire la fête :-)
| > Si tu veux deviner vers quelle grande ville j'habite, la grande fête est
| > pour ce soir (8 décembre).
|
| lyon !
| | > Non, mais ce n'est pas une raison de ne pas faire la fête :-) | > Si tu veux deviner vers quelle grande ville j'habite, la grande fête est | > pour ce soir (8 décembre). | | lyon !