Allocation memoire
Amouna29
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Amouna29 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Amouna29 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour , j'ai un soucis avec mon code C
j'ai une matrice de 4000 ligne et 14000 colonnes dont laquel je veux comparer chaque colonne avec l'autre mais j'arrive pas de la charger en mémoire
y a t-il des astuces pour se faire ?
Merciii d'avance
j'ai une matrice de 4000 ligne et 14000 colonnes dont laquel je veux comparer chaque colonne avec l'autre mais j'arrive pas de la charger en mémoire
y a t-il des astuces pour se faire ?
Merciii d'avance
A voir également:
- Allocation memoire
- Mémoire vive - Guide
- RAM : type, format, CAS, vitesse, tout sur la mémoire vive - Guide
- Nettoyer memoire iphone - Guide
- C'est un secret bien gardé : ce réglage d'expert peut doper les performances de votre PC - Guide
- Gmail memoire insuffisante - Guide
2 réponses
Bonjour,
Peux-tu montrer ton code ? :-).
Note : merci d'utiliser la balise "code c".
Exemple : <code c>ici tu mets ton code</code>
Cdlt,
Peux-tu montrer ton code ? :-).
Note : merci d'utiliser la balise "code c".
Exemple : <code c>ici tu mets ton code</code>
Cdlt,
#include <stdlib.h> #include <string.h> #include <stdint.h> #include <stdio.h> // les focnction et les procedure //la fonction combainaison // la fonction factoriel /////////////////////// main ///////////////////////////////// int main(int argc, char *argv[]) { int n=4026 ; int nbc=14700; int m1[n][nbc]; int repeter[nbc]; int i=0; int j=0; FILE *filee; filee=fopen("base.txt", "r");// pour charger la matrice de données for(i = 0; i < n; i++) { for(j = 0; j <nbc; j++) { //Use lf format specifier, %c is for character if (!fscanf(filee, "%d",&m1[i][j])) break; // mat[i][j] -= '0'; //printf("%6d",m1[i][j]); //Use lf format specifier, \n is for new line // m1[ii][jj]=mat1[ii][jj]; }//printf("\n"); } fclose(filee); ////////////////////////////////////////////////////// int occurence[3]={0}; for(j=0;j<nbc;j++) { for(i=0;i<n;i++) { if (m1[i][j]==0) occurence[0]=occurence[0]+1;// nombre d'occurence de zero else if (m1[i][j]==1) occurence[1]=occurence[1]+1;// nombre d'occurence de 1 else occurence[2]=occurence[2]+1;// nombre d'occurence de -1 } //printf("%6d",occurence[0]);printf("%6d",occurence[1]);printf("%6d",occurence[2]);printf("\n"); //////////// trouver l'occurence maximal int max=occurence[0]; int valmax=0;int k=0; //printf("%6d",max);printf("\n"); if (occurence[1]>max) {max=occurence[1]; valmax=1;} if (occurence[2]>max) {max=occurence[2]; valmax=2;} ////////////////////////////// min int min=occurence[0]; int valmin=0; //printf("%6d",max);printf("\n"); if (occurence[1]<min) {min=occurence[1]; valmin=1;} if (occurence[2]<min) {min=occurence[2]; valmin=2;} /////////////////////////////////////trouver la moyenne int val=0; if(valmin==0){ if(valmax==1) val=2; else val=1; } if(valmin==1){ if(valmax==0) val=2; else val=0; } if(valmin==2){ if(valmax==1) val=0; else val=1; } // val pour la moyenne if(val==0) repeter[j]=0; if(val==1) repeter[j]=1; if(val==2) repeter[j]=-1; //printf("\n"); //printf("%6d",max);printf("\n"); //printf("%6d",val);printf("\n"); occurence[0]=0;occurence[1]=0;occurence[2]=0; }// fin du parcour de la collonne int kk=0; printf("\n"); printf("\n"); for(kk=0;kk<nbc;kk++)printf("%6d",repeter[kk]);printf("\n"); }// fin main
Bonjour,
int m1[n][nbc]; int repeter[nbc];
Ce n'est pas bon.. n et nbc sont des int, tu dois mettre des nombres dans les tableaux. Donc soit en dur, soit avec #define.
Tu as un oublié un return 0;
Sinon, pour le problème, je te conseille de passer par malloc()... Et si ça ne fonctionne pas, tu peux peut-être passer par des tableaux de pointeurs...
int m1[n][nbc]; int repeter[nbc];
Ce n'est pas bon.. n et nbc sont des int, tu dois mettre des nombres dans les tableaux. Donc soit en dur, soit avec #define.
Tu as un oublié un return 0;
Sinon, pour le problème, je te conseille de passer par malloc()... Et si ça ne fonctionne pas, tu peux peut-être passer par des tableaux de pointeurs...