begin process at 2012 05 28 13:05:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

appel de fontions avec un tableau de pointeurs en paramèmtre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

appel de fontions avec un tableau de pointeurs en paramèmtre

jeudi 7 juin 2007 à 11:04:12 | appel de fontions avec un tableau de pointeurs en paramèmtre

thespartan

Voilà j'ai cette fonction qui marche :

void alloue(int lig,int col){
int i,j;
  int l='A';
  T = (int **) malloc(col*sizeof(int*));
  if (T == NULL)
    printf("\nEchec lors de l'allocation memoire!");
  for (i=0;i<col;i++)  {
    T[i] =(int*)malloc(lig*sizeof(int));
    if (T[i] == NULL)
      printf("\nEchec lors de l'allocation memoire!");
  }
}


appelée ainsi : alloue(4,N); . T est déclaré globalement (int **T;)

Ensuite, je choisi de ne plus faire réfénrence à une variable globale dans alloue(4,N);  donc  j'ajoute un 3ème argument : le tableau dont on veut allouer de la mémoire :

void alloue(int **t,int lig,int col){
int i,j;
  int l='A';
  //graphe
  t = (int **) malloc(col*sizeof(int*));
  if (t == NULL)
    printf("\nEchec lors de l'allocation memoire!");
  for (i=0;i<col;i++)  {
    t[i] =(int*)malloc(lig*sizeof(int));
    if (t[i] == NULL)
      printf("\nEchec lors de l'allocation memoire!");
  }
}


appelée ainsi : alloue(T,4,N); .Et ça marche pas . Quelqu'un peut m'aider ??

Spartan
jeudi 7 juin 2007 à 11:55:03 | Re : appel de fontions avec un tableau de pointeurs en paramèmtre

HSylvio

Réponse acceptée !
Bon yavait longtemps que j'avais pas codé ca m'a fait plaisir de revoir un peu les joies des pionteurs...

Alors voila un truc ressemblant qui marche :

int** alloue(int lig,int col);
int main(int argc, char *argv[])
{
    int **t = alloue( 3, 12);
    printf("\n%d", 12);
   
    for (int i=0;i<3;i++)  {
      for (int j=0;j<12;j++)  {
          printf("\n%d", t[i][j]);
      }
  }
    system("PAUSE");
   
    return EXIT_SUCCESS;
}


int** alloue(int lig,int col){
int i,j;int n=0;
  //graphe
  int **t;
  t = (int **) malloc(col*sizeof(int*));
  if (t == NULL)
    printf("\nEchec lors de l'allocation memoire!");
  for (i=0;i<col;i++)  {
    t[i] =(int*)malloc(lig*sizeof(int));
    if (t[i] == NULL)
      printf("\nEchec lors de l'allocation memoire!");
  }
  printf("\nFini alloc?");
  for (i=0;i<lig;i++)  {
      for (j=0;j<col;j++)  {
          t[i][j] = n++;
          printf("\n%d", t[i][j]);
      }
  }printf("\nFini rempli?");
  return t;
}


Avec ça tu devrais arriver a faire ce que tu veux...non?
jeudi 7 juin 2007 à 14:09:44 | Re : appel de fontions avec un tableau de pointeurs en paramèmtre

thespartan

Ton code m'a bien aidé, merci . Le **t j'aurai du le déclarer dans int** alloue(int lig,int col) et le renvoyer au lieu d'en faire un paramètre de cette fonction. Reste à comprende. Peux-tu m'expliquer?(toi ou quelqu'un d'autre)

PS : ma fonction corrigée, ça peut toujours aider... :

int** alloue(int lig,int col){
  int i,j,**t;
  t = (int **) malloc(col*sizeof(int*));
  if (t == NULL)
    printf("\nEchec lors de l'allocation memoire!");
  for (i=0;i<col;i++)  {
    t[i] =(int*)malloc(lig*sizeof(int));
    if (t[i] == NULL)
      printf("\nEchec lors de l'allocation memoire!");
  }
  return t;
}

et T=alloue(4,N); sachant que T est une variable globale
Spartan
jeudi 7 juin 2007 à 14:40:23 | Re : appel de fontions avec un tableau de pointeurs en paramèmtre

SAKingdom

Membre Club
Allocateur pour pointeur de pointeurs à cette adresse:
http://www.codyx.org/snippet_allocateur-pointeur-pointeurs_293.aspx
Plus rapide que d'allouer séparément la mémoire pour chaque pointeur. Un simple free suffis pour libérer toute la mémoire.

C++ (@++)



Cette discussion est classée dans : int, col, lig, malloc, alloue


Répondre à ce message

Sujets en rapport avec ce message

Besoin d'aide urgent SVP [ par paulina82 ] Bonjour, j'ai un gros probleme avec mon programme ecri en langage C.lorsque je complile il n'afiche pa d'erreur mais lorsque j'esaye de l'executé il [QT] vider QGridLayout et rafraichir sont affichage [ par yepraoulette ] Salut a tous,Je cherche en faite a afficher une partie d'un tableau (stocké dans une QList de QList) dans un GridLayoutL'utilisateur peut choisir le n Aide partie résolution de mon sudoku... [ par Francks11 ] Bonsoir, enfaite il me faudrait de l'aide pour ma partie sol du sudoko qui recherche les solutions du jeu. A savoir, que pour chaque essai, on conser problème d'intégrer mon algorithme [ par baster200x ] Slt tous le mande! je vous adresse pour m'aider à trouver une solution à mon problème! j'ai un outil Open source Nommé [url=http://home.dei.polimi j'ai besoin de vous!!! [ par baster200x ] bonjour les amis [^^happy13] j'ai trouvé la solution pour mes problème que je l'ai poser précédemment sur le forum à propos de l'intégration d'u Suppression de caractères d'un gros fichier texte [ par mslider ] --Bonjour, c'est juste pour une petite aide. J'ai utilisé un code qui avait été mis au point à l'origine pour faire du cross-table(tableau croisé, vo algorithmique de fonction rec [ par fs_fck_sarko ] bonjour tout le monde, est ce que quelquun pourai maider pour le calul de complexite d'un programme qui resout les sudoku ? En fait je voudrais trouve Algo utile ou complètement "bidon"?? [ par ninjagtr ] Bonjour,Je suis tombé sur un bout de code et je ne sais pas s'il a une utilité (autre que de me faire chercher lol).Voici le code : int Devinez(int x) problèmes serveur [ par deck_bsd ] Bonjour à tous,Voila je me met à la programmation réseaux et j'ai commencé par une simple appli console client-serveur. Mon serveur est censé recevoir multiple affichage graphique en C++ [ par radovan ] Bonjour,à des fins didactique (apprentissage du C++), je chercheà faire un petit programme qui me permettra d'afficher la propagation d'un cercle type


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,306 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales