Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: mapers en 11 Marzo 2011, 09:37 AM

Título: funcion eliminar
Publicado por: mapers en 11 Marzo 2011, 09:37 AM
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
Título: Re: funcion eliminar
Publicado por: BlackZeroX en 11 Marzo 2011, 10:12 AM
.
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!¡.