|
|
|
|
Posté par
Papi_72, le mardi 5 février 2008 à 01:37:32
float **tab;
int i;
tab = (float**)malloc( 1*sizeof(float*) );
for (i=0 ; i<1 ; i++){
tab[i] = (float*)malloc( 3*sizeof(float) );
}
tab = (float**)realloc( tab, N*sizeof(float*) );
for (i=0 ; i<N ; i++){
tab[i] = (float*)realloc( tab, 1*sizeof(float) );
}
Configuration: Windows XP Internet Explorer 7.0
Essaie ça :
tab[i] = (float*)realloc( tab[i], 1*sizeof(float) ); Qu'est-ce qui te fait dire que ça ne marche pas ? Google is your friend |
Merci fiddy mais le code que tu m'a donné ne fonctionne pas non plus, j'arrive à compiler mais lorsque je lance l'executable, il plante aussi tot.
Si je fais un grand tableau avec malloc et que je supprime le realloc, mon programme fonctionne, le problème vient donc de mon realloc mais ou ? Merci |
Bonjour,
Une chose me turlupine un peu. Tu as des lignes de colonnes contenants 3 floats, donc pourquoi ré-allouer les colonnes ?
float **tab;
int i;
tab = (float**)malloc( 1*sizeof(float*) );
for (i=0 ; i<1 ; i++)
{
tab[i] = (float*)malloc( 3*sizeof(float) );
}
tab = (float**)realloc( tab, N*sizeof(float*) );
// allouer les nouvelles colonnes.
for (i=1 ; i<N ; i++)
{
tab[i] = (float*)malloc( 3*sizeof(float) );
}
Au final il faudra une deuxième variable pour la taille, désallouer si la nouvelle est plus petite, allouer si elle est plus grande que l'ancienne.. Ou alors (si je n'ai pas perçu ton intérêt)
float **tab;
int i;
tab = (float**)malloc( 1*sizeof(float*) );
for (i=0 ; i<1 ; i++)
{
tab[i] = (float*)malloc( 3*sizeof(float) );
}
tab = (float**)realloc( tab, N*sizeof(float*) );
for (i=0 ; i<N ; i++)
{
tab[i] = (float*)realloc( tab + i, 3*sizeof(float) ); // On ré-alloue bien ici la colonne et non tab et bien des colonnes de 3 float et non 1.
}
Ca marche comme cela ? M. |
Merci Mahmah,
la première solution que tu propose fonctionne très bien. Merci a vous de m'avoir déboqué. |
| 19/05 14h28 | Réseau local et partage de connexion Internet | Réseaux |
| 19/03 13h59 | [Linux] Création d'un CDrom de boot | Linux |
| 12/11 12h37 | [Internet] Le cache Internet | Internet |
| 17/04 05h24 | Carte graphique AGP x8 et Carte mere AGP x4 | Carte graphique |
| 25/05 16h04 | Import ses contacts sous outlook à partir d'Excel | Messagerie électronique |
| 26/10 20h30 | Comment crié un tableau 2 dimension en php | 6 |
| 06/01 00h43 | C - Problème paramètres tableau 2 dimensions | 9 |
| 09/05 21h39 | Compaison tableau 2 dimension | 4 |
| 15/07 17h09 | Formules dans excel dans tableau 2 dimensions | 1 |
![]() | Pack de compatibilité Microsoft Office 2007 - En installant le pack de compatibilité pour Microsoft Office 2000, Office XP ou Office 2003, vous pouvez ouvrir, modifier et... | Catégorie: Bureautique Licence: Freeware/gratuit |
![]() | K-Lite Codec Pack Full - K-Lite Codec Pack est une collection de codecs et de filtres nécessaires pour encoder ou décoder des formats audio ou vidéo.... | Catégorie: Codecs Licence: Open Source |
![]() | CleanUp! - CleanUp! efface les traces de votre activité sur Internet stockées sur le disque dur, notamment : Cache du navigateur ... | Catégorie: Anonymat/Confidentialité Licence: Freeware/gratuit |
![]() | K-Lite Mega Codec Pack - K-Lite Codec Pack est une collection de codecs et de filtres nécessaires pour encoder ou décoder des formats audio ou vidéo.... | Catégorie: Codecs Licence: Open Source |
![]() | Fujitsu Siemens LifeBook Q2010 | Catégorie: Ordinateur portable | 3,638.40 € Compufirst |
![]() | HP DX2200 Celeron D | Catégorie: Ordinateur de bureau | 493.95 € Compufirst |
![]() | HP NC2400 Intel Core | Catégorie: Ordinateur portable | 1,429.89 € Rue du Commerce |
![]() | HP nc2400 Intel Core | Catégorie: Ordinateur portable | 839.02 € Inmac Wstore |