具体代码我没看,但是这三行你明显没有进行格式转换
p=malloc(m*n*sizeof(float));
p1=malloc(m*sizeof(float));
p2=malloc(n*sizeof(float));
改成
p=(float*)malloc(m*n*sizeof(float));
p1=(float*)malloc(m*sizeof(float));
p2=(float*)malloc(n*sizeof(float));