D'abord ptrnum c'est un pointeur vers un pointeur sur un pointeur d'entier, pas un pointeur sur un pointeur d'entier. Ensuite si tu as besoin de faire des choses avec 4 niveau d'indirection, tu es mal barré. Quelque chose me dit qu'il y a un problème d'architecture dans ton appli.
Enfin, tout dépend de ce que tu as mis dans *ptrnum et **ptrnum. Puisque tu ne donnes aucun détail à ce sujet, on ne peut pas répondre. Il y a des chances pour qu'une de ces adresses ne contienne pas ce que tu penses qu'elle contient. En faisant un malloc plus large, ton code ne fait toujours pas que tu penses qu'il fait, mais par chance il tombe dans la zone mallocée et donc ça passe.