IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

pointeurs vers des sous-matrices


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut pointeurs vers des sous-matrices
    Bonjour,

    Je code actuellement une multiplication matricielle rapide de 3 matrices (type algo de Strassen, étendu à 3 matrices), dans laquelle j'ai besoin d'extraire des sous-matrices.

    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int** matrice = new int*[10];
     
    for (int i = 0; i < 10; i++) {
    matrice[i] = new int[10];
    }
    Pour dérouler mon algo, j'ai besoin de diviser cette matrice en 4 blocs.
    Afin d'éviter de copier et recopier des int en mémoire, je souhaiterais travailler avec les pointeurs vers : matrice[0][0], matrice[0][5], matrice[5][0] et matrice[5][5].

    Ce que je souhaite faire, c'est une fonction récursive "rapid_mult", qui prend un pointeur vers une matrice en entrée la divise en 4 blocs, et commence à "remonter la chaussette" lorsque la matrice est d'ordre 2.
    (il y a un padding de '0' à faire, mais ce n'est pas encore mon pb pour l'instant)

    Comment passer les bons pointeurs à ma fonction? J'ai bien essayé , mais cela ne fonctionne pas (je pense que le pointeur n'est pas valable depuis une autre fonction que celle où il a été généré...)

    En espérant être à peu près compréhensible...

    Merci d'avance!

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    le pointeur n'est valable que si le pointé existe encore.
    Un pointeur sur une variable locale cesse d'être valable quand on sort de sa portée (sortie de la fonction, de la boucle, etc)

    Cela dit, si ton calcul doit être rapide, je te suggère fortement de ne pas utiliser un tableau de pointeurs, mais une forme linéarisée (tableau de N*N éléments).

    Il existe deux choses qui peuvent t'aider:
    • notre faq sur les opérateurs de matrice: pourquoi et comment utiliser l'opérateur parenthèses.
    • les bibliothèques dédiées (dont celles de Boost), et les "expression template".


    Notre faq t'expliquera comment t'en sortir par toi-même, les bibliothèques te permettront de ne pas refaire ce travail d'optimisation.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/07/2010, 11h43
  2. Réponses: 11
    Dernier message: 17/05/2010, 10h40
  3. reconnaissance des sous-matrices de zéros
    Par Lalaine dans le forum Mathématiques
    Réponses: 2
    Dernier message: 16/03/2009, 16h01
  4. Réponses: 2
    Dernier message: 12/10/2006, 20h28
  5. Liste des sous-matrices carrées
    Par potimarara dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 12/10/2006, 18h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo