Je rencontre des difficultés faisant passer un grand tableau à une fonction en C.Passe grand tableau multidimensionnel pour fonctionner en C
Je déclare:
int image[height][width][3]={};
où la hauteur et la largeur peut être aussi grand comme 1500. Et quand je l'appelle:
foo((void *)image,height,width);
qui est déclaré comme suit:
int *foo(const int *inputImage, int h, int w);
Je reçois une erreur de segmentation. Ce qui est étrange est que si mes valeurs sont:
height=1200;
width=290;
Theres pas de problème, mais quand ils sont:
height=1200;
width=291;
i obtenir l'erreur mentionnée. A 4 octets par entier avec une hauteur et une largeur de 1500 (pire cas absolu), la taille du tableau serait de 27Mo, ce qui n'est pas très important et ne devrait pas vraiment importer car je ne fais que passer un pointeur vers le premier élément le tableau. Aucun conseil?
Est-ce que 'image' est sur la pile? Si c'est le cas, vous manquerez probablement d'espace sur la pile. Essayez d'allouer dynamiquement le tableau. –