argv [1], argv [2], argv [3] sono char *, ma tu le tratti come se fosse int, quindi giustamente, ad esempio in "bool** createPBM (int imageW, int imageH)" imageW e imageH avranno dei valori.. indecenti ;-)
per converire da char * a int vedi ad esempio http://en.wikipedia.org/wiki/Atoi