CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

printf("blabla");

Baudelairien
Baudelairien
Niveau 6
01 mai 2015 à 04:13:42

Salut, je post ici au lieu de faire un sujet.
J'aimerai créer une fonction qui créer un tableau avec x dimensions.
Merci

Message édité le 01 mai 2015 à 04:14:07 par Baudelairien
Pseudo supprimé
Pseudo supprimé 01 mai 2015 à 04:17:24

Est-ce vraiment utile ?

Ne pourrais-tu pas créer trois fonctions, (une pour 1d, 2d et 3d) et appeler en fonction de ?

Baudelairien
Baudelairien
Niveau 6
01 mai 2015 à 04:19:33

Le 01 mai 2015 à 04:17:24 VampireGirl a écrit :
Est-ce vraiment utile ?

Ne pourrais-tu pas créer trois fonctions, (une pour 1d, 2d et 3d) et appeler en fonction de ?

Non je laisse cette possibilité à l'utilisateur, c'est lui qui décide du nombre de dimensions.

Message édité le 01 mai 2015 à 04:20:38 par Baudelairien
Pseudo supprimé
Pseudo supprimé 01 mai 2015 à 04:23:34

Tu programmes avec quel langage ?

Baudelairien
Baudelairien
Niveau 6
01 mai 2015 à 04:26:19

Oups, j'ai oublié de le dire, je code en C.

Je précise juste que la fonction ne doit pas retourner le tableau, donc pas de soucis de types.

Pseudo supprimé
Pseudo supprimé 01 mai 2015 à 04:31:20

J'ai l'impression que tu vas devoir utiliser des tableaux de pointeurs. Le nombre de pointeurs déterminerait le nombre de dimensions.

La difficulté sera d'initialiser les pointeurs avec malloc. Ca m'a l'air assez casse tête

Baudelairien
Baudelairien
Niveau 6
01 mai 2015 à 04:33:44

Je ne vois pas comment faire, aurais-tu plus d'indications ?

Pseudo supprimé
Pseudo supprimé 01 mai 2015 à 04:40:09

Voici un exemple qui montre comment créer des tableaux avec des pointeurs :

http://fr.wikibooks.org/wiki/Programmation_C/Pointeurs#Tableaux_dynamiques_.C3.A0_deux_dimensions

Mais sans connaître directement le nombre de dimensions qu'il y aura ça m'a l'air compliqué

Baudelairien
Baudelairien
Niveau 6
01 mai 2015 à 04:45:36

Le 01 mai 2015 à 04:40:09 VampireGirl a écrit :
Voici un exemple qui montre comment créer des tableaux avec des pointeurs :

http://fr.wikibooks.org/wiki/Programmation_C/Pointeurs#Tableaux_dynamiques_.C3.A0_deux_dimensions

Mais sans connaître directement le nombre de dimensions qu'il y aura ça m'a l'air compliqué

Moi aussi :hap:
C'est pour ça que je pose la question ici...

Pseudo supprimé
Pseudo supprimé 01 mai 2015 à 04:47:44

Tu vas faire quoi d'un programme qui travaille avec + de 3 dimensions ? :o))

Baudelairien
Baudelairien
Niveau 6
01 mai 2015 à 04:48:39

Je développe un langage :mort:

Pseudo supprimé
Pseudo supprimé 01 mai 2015 à 04:56:26

J'ai une idée qui me vient :

Tu crées une boucle qui fini si le nombre de pointeurs demandés par l'utilisateur est atteint.
En fonction du nombre de pointeur, tu initialises les pointeurs, et à chaque fois que c'est fait tu passes au pointeur suivant tant que le nombre max n'est pas atteint. C'est une idée de base, mais bon c'est l'idée

Baudelairien
Baudelairien
Niveau 6
01 mai 2015 à 04:57:57

Un pointeur pointant sur ?

godrik
godrik
Niveau 30
01 mai 2015 à 05:00:06

c'est classique de travailler dans des espaces a plus de 3 dimension. C'est meme super classique en data mining. (Essentiellement chaque attribut est une dimension de plus.) C'est aussi courant dans les algo de programmation dynamique quand ils ont plus de 3 parametres (chaque parametre est une dimension).

Parcontre que quelqu'un cherches a developper un langage de programmation sans savoir faire un truc comme ca c'est un peu inquietant... Basiquement il faut allouer une zone de memoire uni dimensionnel et calculer tes index manuellement.. Reflechit a comment lineaire ton espace memoire pour un tableau 2D et en x dimension c'est essentiellement pareil.

Pseudo supprimé
Pseudo supprimé 01 mai 2015 à 05:03:26

En gros le pointeur doit pointer sur un autre pointeur. Dans le cas d'un tableau 2d par exemple, tu ferais :

int **p;

  • p représenterai chaque ligne, et **p les collones. Et ainsi de suite si tu as plusieurs dimensions.

Le but en fait est d'initialiser chaque pointeur, pour avoir accès à la dimension suivante.

Le type après dépends de ce que tu veux, tu peux au pire faire void **p pour pointer sur tout type.

Je crois que tu devrais créer une struct, pour mémoriser le nombre de dimensions, et les pointeurs. Parce qu'il faut aussi libérer la mémoire...

Pseudo supprimé
Pseudo supprimé 01 mai 2015 à 05:04:36

Le 01 mai 2015 à 05:00:06 godrik a écrit :
c'est classique de travailler dans des espaces a plus de 3 dimension. C'est meme super classique en data mining. (Essentiellement chaque attribut est une dimension de plus.) C'est aussi courant dans les algo de programmation dynamique quand ils ont plus de 3 parametres (chaque parametre est une dimension).

Parcontre que quelqu'un cherches a developper un langage de programmation sans savoir faire un truc comme ca c'est un peu inquietant... Basiquement il faut allouer une zone de memoire uni dimensionnel et calculer tes index manuellement.. Reflechit a comment lineaire ton espace memoire pour un tableau 2D et en x dimension c'est essentiellement pareil.

J'ai du mal à me représenter ça :peur:

Baudelairien
Baudelairien
Niveau 6
01 mai 2015 à 05:13:22

Godrik :d) Merci, J'ai beaucoup de mal à réfléchir.
Cette solution m'était passée par la tête mais j'ai dû l'oublier

Le 01 mai 2015 à 05:03:26 VampireGirl a écrit :
En gros le pointeur doit pointer sur un autre pointeur. Dans le cas d'un tableau 2d par exemple, tu ferais :

int **p;

  • p représenterai chaque ligne, et **p les collones. Et ainsi de suite si tu as plusieurs dimensions.

Le but en fait est d'initialiser chaque pointeur, pour avoir accès à la dimension suivante.

Le type après dépends de ce que tu veux, tu peux au pire faire void **p pour pointer sur tout type.

Je crois que tu devrais créer une struct, pour mémoriser le nombre de dimensions, et les pointeurs. Parce qu'il faut aussi libérer la mémoire...

Ta solution me semble bien chiante à réaliser :(
Merci quand même, godrik a répondu à ma question.

Message édité le 01 mai 2015 à 05:15:44 par Baudelairien
Pseudo supprimé
Pseudo supprimé 01 mai 2015 à 05:15:26

¨Merci aussi au passage parce que je découvre un truc nouveau. Je vais me renseigner là-dessus.

Pseudo supprimé
Pseudo supprimé 01 mai 2015 à 05:17:24

Baudelairien, effectivement, et elle n'aurait mené à rien je pense. J'essayais de réfléchir en même temps que toi sur ce problème. :o)) Par contre ça m'a l'air moins complexe à réaliser avec les templates en C++

Message édité le 01 mai 2015 à 05:20:35 par Pseudo supprimé
Baudelairien
Baudelairien
Niveau 6
01 mai 2015 à 05:28:09

Euh en fait non la solution de godrik ne me convient pas car elle nécessite de redéfinir tout le tableau à chaque nouvelle dimension.

Exemple :

1) Tableau de base : [ element1, element2 ]
2) On rajoute une dimension: [ element1, (case vide), element2, (case vide), element2, (case vide) ]

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment