因为分配内存分配少了,导致后面使用越界,因此释放内存时出问题,分配内存的语句应该这样: mtrx=(int *)malloc((max+max)*sizeof(int));按你原来的方式只分配了1/4的内存。
用realloc吧,当然第一次用malloc