J'ai un simple programme OpenGL C (à partir de NeHe lesson 2). Il y a la fonction d'initialisation InitGL.
et j'ai fonction foo
dans ma bibliothèque statique:Erreur de segmentation lors de l'appel d'une fonction de bibliothèque statique
void foo(double *p)
{
p[0] = 1.0;
}
Quand je Define Array double au début de InitGL
:
double arr[1000];
et le modifier en InitGL
tout fonctionne très bien.
Quand j'allouer de la mémoire pour ce tableau dynamique et appelle foo
de InitGL
tout fonctionne bien aussi:
double *p = (double *)malloc(1000 * sizeof(double));
foo(p);
Mais quand je Define Array au début de InitGL
et appelle foo
de InitGL
:
double p[1000];
foo(p);
je reçois défaut de segmentation à la ligne
p[0] = 1.0;
Où est l'erreur?
Montrez-nous le code actuel - sans cela, nous ne faisons que deviner. –
Le code présenté devrait fonctionner correctement. Je blâmerais la corruption de la mémoire d'une autre partie de votre code, car elle ne se produit que lorsqu'elle est mise en pile. – jweyrich
Big désolé, j'ai fondé l'erreur et mis à jour ma question :) – Kirill