Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1452 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C] Vecteurs et fonctions

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Vecteurs et fonctions

n°124930
gizmo
Posté le 11-04-2002 à 20:47:31  profilanswer
 

2 questions sous ce titre énigmatique, parce que j'ai un peu de mal à me remettre au C :sweat:  
 
1° Existe-t-il, à l'instar du shift en assembleur, une fonction qui permet de déplacer tous les éléments d'un vecteur en C d'une position vers la gauche ou la droite? Quitte à perdre une partie de l'info comme dans le shift.
 
2° J'ai un vague souvenir de fonction ayant pour paramètre des pointeurs vers d'autres fonctions, mais je n'arrive plus à mettre la main sur une doc qui en parle. si quelqu'un avait un lien, ca m'aiderait beaucoup.
 
Merci d'avance.

mood
Publicité
Posté le 11-04-2002 à 20:47:31  profilanswer
 

n°124937
Jar Jar
Intaigriste
Posté le 11-04-2002 à 21:17:48  profilanswer
 

1) Tout déplacer en C, c'est une perte de temps. Il est beaucoup plus simple d'incrémenter un pointeur.
 
Exemple, si tu veux faire l'équivalent du shift du shell, c'est :
argv++; argc--;
 
2) Oui, ça existe. Tu veux faire quoi exactement ?


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°124953
HappyHarry
Posté le 11-04-2002 à 22:23:55  profilanswer
 

Jar Jar a écrit a écrit :

1) Tout déplacer en C, c'est une perte de temps. Il est beaucoup plus simple d'incrémenter un pointeur.
 
Exemple, si tu veux faire l'équivalent du shift du shell, c'est :
argv++; argc--;
 
ouais mais c pas vraiment un decalage, tu perds le premier element du tableau
 
2) Oui, ça existe. Tu veux faire quoi exactement ?  



n°124955
Jar Jar
Intaigriste
Posté le 11-04-2002 à 22:27:21  profilanswer
 

HappyHarry a écrit a écrit :

 ouais mais c pas vraiment un decalage, tu perds le premier element du tableau


Ah bin oui, tu y perds. Mais il demande l'équivalent du shift du shell.
 
Au passage, il faut éviter ce genre de trucs avec les tableaux alloués avec malloc, ou du moins garder un pointeur vers le début quelque part...


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°124958
HappyHarry
Posté le 11-04-2002 à 22:30:31  profilanswer
 

autant pour moi alors ... j'avais pas tout lu en fait  :D  
 
pour la remarque sur malloc, chuis entierement d'accord !

n°124981
LeGreg
Posté le 11-04-2002 à 23:49:25  profilanswer
 

gizmo a écrit a écrit :

2 questions sous ce titre énigmatique, parce que j'ai un peu de mal à me remettre au C :sweat:  




 
une seule reponse a toutes tes questions:  
le langage C par Kernighan et Ritchie
Un tout petit investissement et tu pourras
faire la star en C :)
 
LEGREG

n°125012
gizmo
Posté le 12-04-2002 à 01:31:09  profilanswer
 

ok, merci pour vos réponses, je vais quand même préciser mes besoins, ca vous paraitra plus clair.
 
- le premier est dans un but de rapidité, je dois construire des matrices qui, d'une étape à l'autre ne changent que d'une colonne extrème. Or ces matrices prennent beaucoup de place mémoire et de temps à faire. donc, la solution d'un pointeur ne me va pas car je sature la mémoire de la machine car elles sont crées dynamiquement avec un malloc justement.
 
- le deuxième provient du fait que je dois appliquer une fonction à ces matrices de manière itérative. Or la fonction à appliquer dépend d'un paramètre, et de nouveau, dans un but de rapidité, pour ne pas faire un switch à chaque boucle, je cherche à stocker un acces à une fonction que je pourrais atteindre ensuite directement.
 
legreg>> merci pour la référence, mais malheureusement, je n'ai vraiment plus le temps de potasser un bouquin, ou bien je risque d'avoir tout le temps de le lire :sweat:  
 
Ce problème me fait vraiment chier, j'avais tout fait en c++, et après ils viennent me dire que le but n'est pas la modularité mais la rapidité :fou:

n°125017
gilou
Modérateur
Modzilla
Posté le 12-04-2002 à 05:38:12  profilanswer
 

gizmo a écrit a écrit :

ok, merci pour vos réponses, je vais quand même préciser mes besoins, ca vous paraitra plus clair.
 
- le premier est dans un but de rapidité, je dois construire des matrices qui, d'une étape à l'autre ne changent que d'une colonne extrème. Or ces matrices prennent beaucoup de place mémoire et de temps à faire. donc, la solution d'un pointeur ne me va pas car je sature la mémoire de la machine car elles sont crées dynamiquement avec un malloc justement.
 
- le deuxième provient du fait que je dois appliquer une fonction à ces matrices de manière itérative. Or la fonction à appliquer dépend d'un paramètre, et de nouveau, dans un but de rapidité, pour ne pas faire un switch à chaque boucle, je cherche à stocker un acces à une fonction que je pourrais atteindre ensuite directement.
 
legreg>> merci pour la référence, mais malheureusement, je n'ai vraiment plus le temps de potasser un bouquin, ou bien je risque d'avoir tout le temps de le lire :sweat:  
 
Ce problème me fait vraiment chier, j'avais tout fait en c++, et après ils viennent me dire que le but n'est pas la modularité mais la rapidité :fou:  




C'est pas des matrices creuses?
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°125037
Jar Jar
Intaigriste
Posté le 12-04-2002 à 09:52:14  profilanswer
 

- le premier est dans un but de rapidité, je dois construire des matrices qui, d'une étape à l'autre ne changent que d'une colonne extrème. Or ces matrices prennent beaucoup de place mémoire et de temps à faire. donc, la solution d'un pointeur ne me va pas car je sature la mémoire de la machine car elles sont crées dynamiquement avec un malloc justement.
 
Hmouais. Pas facile comme truc. Tu peux imaginer des matrices avec pour chaque colonne un pointeur, et quasiment toutes les colonnes en commun.
 
 
- le deuxième provient du fait que je dois appliquer une fonction à ces matrices de manière itérative. Or la fonction à appliquer dépend d'un paramètre, et de nouveau, dans un but de rapidité, pour ne pas faire un switch à chaque boucle, je cherche à stocker un acces à une fonction que je pourrais atteindre ensuite directement.
 
Ça se fait sans problème, tu peux passer un pointeur vers une fonction, mais c'est le prototype qui est imbittable, il faut en trouver un pareil (au hasard, je connais pthread_create qui prend une  fonction en argument).
 
 
Ce problème me fait vraiment chier, j'avais tout fait en c++, et après ils viennent me dire que le but n'est pas la modularité mais la rapidité :fou:
 
Tu as essayé Blitz++ ? C'est fait pour ce genre de choses, c'est très rapide, et c'est du C++.


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°125054
gizmo
Posté le 12-04-2002 à 10:13:48  profilanswer
 

gilou>> non, malheureusement.
 
jar jar>> la solution de pointeur, j'y ai déja pensé, mais ca augmente considérablement la taille mémoire et le temps de parcours de la matrice.
 
Pour les fonctions, merci, je vais voir ce que tu m'a mis.
 
Pour blitz++ aussi, je vais me renseigner,  :jap:

mood
Publicité
Posté le 12-04-2002 à 10:13:48  profilanswer
 

n°125085
gizmo
Posté le 12-04-2002 à 11:06:29  profilanswer
 

ok, pour les matrices, j'ai une solution. un peu crade, mais ca va: je garde la atrice d'origine, je change une ligne désignée par un indice et je décale cet indice, ca me permet de n'écrire à chaque fois qu'une ligne et de disposer d'une sorte de liste cyclique sans l'inconvénient des pointeurs.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C] Vecteurs et fonctions

 

Sujets relatifs
Java/JNI - paramètres des fonctions C[C#] Comment faire un fichier de fonctions externes ?
[MFC] rajouter des fonctions non reliées à des messages dans un dialog[C++ (Builder)] Fonctions mathématiques math.h
Petite question sur un éventuel fonct des fonctions en //[Java] Liste des fonctions et méthodes
Open GL : Fonctions 3D des cartes FREE : Les fonctions basename() et substr() sont elles supportees ?
[C/C++] Trigonométrie - Fonctions de perspectives[PHP] fonctions FTP_ et serveur FREE
Plus de sujets relatifs à : [C] Vecteurs et fonctions


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR