Allocation memoire
Amouna29
Messages postés
3
Statut
Membre
-
Amouna29 Messages postés 3 Statut Membre -
Amouna29 Messages postés 3 Statut Membre -
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
- C'est un secret bien gardé : ce réglage d'expert peut doper les performances de votre PC - Guide
- Nettoyer memoire iphone - Guide
- Mémoire virtuelle pour 32 go de ram - 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...