c语言顺序表的删除函数

这里到底怎么改啊?不加,free就会有一个int类型与void类型不兼容,加了又说我的j不定义。

img

j还没分配空间就赋值啊?这里j定义为指针的目的是什么呢?int j就可以了啊。如果是指针,那就要分配空间。int j = (int)malloc(sizeof(int));

没有初始化
j此时里面没有值,没有指向任何存储空间,*j访问他所指向的地址中的值会找不到地方

*j=list[m-1]改为j=&list[m-1]
此外,不要free(j),list是个数组,你把其中一个元素free了是要干啥
数组长度是不可更改的,也不用更改
你需要把n-1返回,赋值给外面的n,或者n用指针传进来
否则你反复调用删除函数,长度会出问题