Pointeur de pointeur
Résolu/Fermé
kenson72000
Messages postés
5
Date d'inscription
lundi 21 janvier 2013
Statut
Membre
Dernière intervention
11 février 2013
-
23 janv. 2013 à 17:42
kenson72000 Messages postés 5 Date d'inscription lundi 21 janvier 2013 Statut Membre Dernière intervention 11 février 2013 - 24 janv. 2013 à 15:47
kenson72000 Messages postés 5 Date d'inscription lundi 21 janvier 2013 Statut Membre Dernière intervention 11 février 2013 - 24 janv. 2013 à 15:47
A voir également:
- Pointeur de pointeur
- Pointeur souris disparu windows 10 - Guide
- Pointeur souris - Guide
- Pointeur souris disparu pc portable asus - Guide
- Pointeur souris avec rond de chargement qui clignote sans arrêts ✓ - Forum Windows
- Le pointeur de ma souris ne bouge plus ✓ - Forum souris / Touchpad
3 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
23 janv. 2013 à 17:59
23 janv. 2013 à 17:59
Avant de faire a[i]=malloc(n*sizeof(int)); il faudrait que a[i] existe, et donc que tu fasses d'abord un malloc sur le a :
a = malloc(n*sizeof(int*));
kratosmindfreak
Messages postés
43
Date d'inscription
mercredi 23 janvier 2013
Statut
Membre
Dernière intervention
1 février 2013
23 janv. 2013 à 18:35
23 janv. 2013 à 18:35
a la place de" int **a " tu peut seulement utiliser un pointeur "int *a" puis pour allouer dynamiquement tu vas juste taper: a=(int*)malloc(n*n*sizeof(int))
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
23 janv. 2013 à 18:37
23 janv. 2013 à 18:37
Dans ce cas il faut changer tous les a[i][j] en a[n*i+j]
kenson72000
Messages postés
5
Date d'inscription
lundi 21 janvier 2013
Statut
Membre
Dernière intervention
11 février 2013
23 janv. 2013 à 18:45
23 janv. 2013 à 18:45
la signature de la fonction m'a été imposée c'est pour cela que j'utilise int **a.
kratosmindfreak
Messages postés
43
Date d'inscription
mercredi 23 janvier 2013
Statut
Membre
Dernière intervention
1 février 2013
23 janv. 2013 à 21:18
23 janv. 2013 à 21:18
changer a[i][j] ->>>> *(a+i*n+j)
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
23 janv. 2013 à 21:21
23 janv. 2013 à 21:21
Oui. Mais kenson72000 vient de dire que int **a était imposé ^^.
Il faut donc bien qu'il alloue a=malloc(n*sizeof(int*)); comme dit par KX.
Il faut donc bien qu'il alloue a=malloc(n*sizeof(int*)); comme dit par KX.
kratosmindfreak
Messages postés
43
Date d'inscription
mercredi 23 janvier 2013
Statut
Membre
Dernière intervention
1 février 2013
Modifié par kratosmindfreak le 23/01/2013 à 23:23
Modifié par kratosmindfreak le 23/01/2013 à 23:23
donc il faut faire:
int **a;
a=(int **) malloc(n*sizeof((int*));
for (i=0; i<n; i++)
a[i]=(int *) malloc(n*sizeof(int));
int **a;
a=(int **) malloc(n*sizeof((int*));
for (i=0; i<n; i++)
a[i]=(int *) malloc(n*sizeof(int));
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
23 janv. 2013 à 23:11
23 janv. 2013 à 23:11
Oui c'est ce que dit KX.
Sauf qu'il a mis sizeof(int*) au lieu de sizeof(double*). Techniquement c'est pareil, mais je ne vois pas l'intérêt de mettre du double* quand il est question de int...
De plus, le cast est superflu : conversion automatique de void*.
Sauf qu'il a mis sizeof(int*) au lieu de sizeof(double*). Techniquement c'est pareil, mais je ne vois pas l'intérêt de mettre du double* quand il est question de int...
De plus, le cast est superflu : conversion automatique de void*.
kratosmindfreak
Messages postés
43
Date d'inscription
mercredi 23 janvier 2013
Statut
Membre
Dernière intervention
1 février 2013
23 janv. 2013 à 23:22
23 janv. 2013 à 23:22
dsl j'ai oublier de mettre int a la place de double :)
kratosmindfreak
Messages postés
43
Date d'inscription
mercredi 23 janvier 2013
Statut
Membre
Dernière intervention
1 février 2013
23 janv. 2013 à 23:23
23 janv. 2013 à 23:23
le cast ca depend de compilateur par exemple Dev c++ necessite un cast
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
23 janv. 2013 à 23:39
23 janv. 2013 à 23:39
Non ça ne dépend pas du compilateur !
Le cast n'est pas obligatoire en C conformément à la norme ISO C89/90.
Si ton compilateur crie, c'est qu'il est en mode C++...
Le cast n'est pas obligatoire en C conformément à la norme ISO C89/90.
Si ton compilateur crie, c'est qu'il est en mode C++...
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
23 janv. 2013 à 23:40
23 janv. 2013 à 23:40
"Dev c++ necessite un cast" parce que c'est du C++ ici on parle de C
24 janv. 2013 à 15:47