Memmove (C)

desviao
06 de Septiembre del 2004
Quiero saber por qué ponen "(char *)" antes y después del destino y la fuente. Es un programa genérico por lo que no se trabaja con tipos de datos específicos.

memmove((char*)destino,(char*)origen,tamElemento)

Gracias

Alejandro_
06 de Septiembre del 2004
No necesitas los moldes (char*), la función memmove toma como parámetros punteros a void.

Por ejemplo, acá escribo una función template "copiar" que recibe punteros a cualquier cosa y devuelve un puntero a la última posición del resultado:


template <typename T>
T* copiar(const T* primero, const T* ultimo, T* resultado) {
memmove(resultado, primero, sizeof(T) * (ultimo - primero));
return resultado + (ultimo - primero);
}

// Alejandro