initialization makes pointer from integer without a cast