LINUX.ORG.RU

Удаление элемента из массива


0

0

Кто сможет помогите!
Есть функция которой передается указатель на массив указателей 8-)
Вот она:
int DelSpoolUnit(spool *a[], int numb){
int elementsToMove,i;
free(a[numb]);
elementsToMove=MAXCONNECT-numb;
memcpy(*a+numb,*a+numb+1,elementsToMove*sizeof(spool *));
}
numb-номер элеиента для удаления
MAXCONNECT константа;

anonymous

И что же не нравиться в собственном творении?
Вопроса-то нет :-)
Ругается на отсутствие return в int-функции?
При любом numb иногда (или у вас всегда?) копирует грязь в последний элемент MAXCONNECT-1?
int DelSpoolUnit(spool *a[], int numb){
int elementsToMove,i;
free(a[numb]);
elementsToMove=MAXCONNECT-numb;
// It's seems more clean, but copy is long
memcpy(&a[numb],&a[numb+1],elementsToMove*sizeof(spool *));
numb[MAXCONNECT-1] = NULL;
return 0; // OR -1, 1
}

io ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.