if ((str = (int**)malloc(sizeof(int*) * m))==NULL) {
の方が見やすいと思うが。