Problème :
En C, passer un tableau multidimensionnel de style C à une fonction attendant un tableau de int* aboutit à un compilateur erreur.
Raison :
Un tableau multidimensionnel comme int4 n'est pas directement convertible en un pointeur de type int*, c'est ce que int arr [] représente dans la fonction déclaration.
Exemple :
#include<stdio.h> void print(int *arr[], int s1, int s2) { // ... } int main() { int a[4][4] = {{0}}; print(a, 4, 4); // Error in C++ }
C signalera une erreur :
cannot convert `int (*)[4]' to `int**' for argument `1' to `void print(int**, int, int)'
Solution :
En C et C , passer un tableau multidimensionnel comme int** n'est pas valide. Pour y parvenir efficacement, le tableau doit être converti en pointeur à l'aide de la technique suivante :
Remarque :
Ignorer les avertissements du compilateur ou ne pas implémenter la conversion appropriée peut entraîner un comportement indéfini et imprévisible résultats.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!