J'ai un pointeur à une double matrice dmatrix que je déclarais à l'aide:Copier et jeté une matrice de flotteur dans une double matrice en utilisant des pointeurs
double* dmatrix = malloc(n*n*sizeof(double));
J'ai aussi un pointeur vide à une matrice imatrix, qui a int valeurs pour une matrice de mêmes dimensions. La matrice int est remplie ailleurs dans le programme. Comment puis-je copier les valeurs de imatric à dmatrix en utilisant juste des pointeurs? C'est ce que j'essaie .:
void *a;
for(int c=0;c<n;c++){
for(int r=0;r<n;r++){
a = ((char *)imatrix+(r*n+c)*sizeof(int));
*(dmatrix+r*n+c) = *(double *)a;
}
}
Pourquoi le 'imatrix' un pointeur vide? Si vous l'affectez à un pointeur int, vous pouvez simplement l'indexer normalement: 'int * iimatrix = imatrix;/* pour les boucles */dmatrix [r * n + c] = iimatrix [r * n + c]; ' – Kninnug
Que se passe-t-il lorsque vous l'essayez? Est-ce que cela fonctionne comme prévu? Pouvez-vous montrer un exemple de production attendue et réelle? – dbush
Vous devez lancer les * valeurs *, pas les * pointeurs *. Je suis sûr de votre code que vous essayez de faire. En outre, votre titre dit 'float' et' double' mais votre texte dit 'double' et' int'. – 5gon12eder