funcion eliminar

Iniciado por mapers, 11 Marzo 2011, 09:37 AM

0 Miembros y 1 Visitante están viendo este tema.

mapers

buenas señores del foro necesito con suma urgencia una funcion que sirva para eliminar un elememento de un arreglo,,,,,,,,, es para mi otro post lo estoy terminando ayudenme

BlackZeroX

#1
.
Usa memcpy() y solo dezplaza el bloque desde el (elemento a eliminar+1) hasta la (longitud - la pocision ya mensionada), de la siguiente manera:

Si usas un vector ( Arreglo que apuntan a mas elementos de distintas longitudes ) puedes hacer lo siguiente:

llamese T el elemento a eliminar.
llamese L la longitud del vector.
Libera lo que apunta la posicion T con free() o delete segun sea el caso.
Mueve el bloque del arreglo desde (T+1) con longitud de (L-(T+1)) a la posicion T.
Despues usa realloc() en el caso de C++ usa NEW y despues memcpy().

Notas: Si (T+1) es mayor a L es un error de segmentacion si es igual a L es el ultimo elemento y si es (L-(T+1)) = 0 entonces el vecto no tendra ningun elemento, faltan obviar mas cosas pero ya te lo dejo a tu disposicion.

Este simple algoritmo es rapido y es el que uso en vb6 solo que es mas simple ( Usando Punteros en vb6 obvio ).

Temibles Lunas!¡.
The Dark Shadow is my passion.