Tu alloue déjà de la mémoire à ta structure (qu'elle contienne en plus des entier ou autre n'est pas un probleme), puis ensuite, puisque tu as un pointeur sur pointeur d'entier, il faut aussi que tu l'alloue. D'ou le fait d'allouer déjà la structure, puis chacun des composants (pointeur). Pour ce qui est des autres types simple faisant parti de ta structure, leur place sera allouée lors de l'allocation de la structure.
Par contre, tu inclu bien ton fichier.h au moins dans ton .c ?!
Parce que sinon c'est normal qu'il ne te le reconnaisse pas.
Pour inclure ton .h :
#include <./mon.h>
Enfin... la déclaration je confonds peut etre avec php a force... ^^
Je pense que ca ne te le reconnais pas parce que ton 'i' n'est pas un pointeur dans ta fonction, donc met une * juste avant ton i (et de meme pour le retour de la fonction si je me souviens bien :
image_N * saisie( )
{
image_N * i;
i = (struct image_N *) malloc( sizeof(struct image_N) );
i->tableau = (int**) malloc ( 5 * sizeof (int*));
return(i)
}


