Bonjour à tous. J'utilise une carte matrox Pulsar sur laquelle est reliée une camera Sony. Des fonctions de programmation en c et c++ sont fournies avec la carte afin de pouvoir la piloter. Actuellement, j'acquiert une image (576*768, sur 256 niveaux de gris ), et je la sauvegarde. Seulement, je souhaiterais effectuer un traitement sur cette image avant de l'enregistrer. Voilà pour la cadre. Rentrons maintenant dans le détail :

Pour acquérir une image, je dois réservé un espace mémoire grâce à une fonction de la carte ('MBufAlloc()') qui me renvoie l'adresse du tampon (nommé MilImage). Ce que je souhaiterais faire, c'est parcourir l'ensemble des (576*768) octets à partir de &Milimage et leur affecter une valeur (entre 0 et 255). Ensuite, il existe une fonction ('MBufsave()') qui permet directement de sauvegarder l'image du tampon dans un fichier .raw.

Voici mon problème : lorsque je parcours les octets à partir de &MilImage, le PC interrompt le traitement à cause d'une violation d'accès à l'adresse '....'. Or j'effectue une simple boucle du genre :

unsigned char *px;

px = &Milimage + 0x138e; (pour passer l'entete)
for(i=0;i<10000;i++)
{
*px = 255; //Par exemple
px++;
}

Même dans ce cas où je ne lis que 10000 éléments, le pc plante (il ne plante pas avec 1000 par contre). Or, on est bien loin des 576*768 !
A vrai dire, lorsque je parcours en boucle infinie, le PC s'arrete au bout du 60665ème octet.

Quelqu'un a-t-il une idée de la raison pour laquelle mon prog ne marche pas ?

Merci pour votre aide.

Benjamin