2010-02-17 14 views

Respuesta

35

En C:

#include <string.h> // memcpy 
#include <stdlib.h> //realloc 

En C++, retire el .h y el prefijo con un c. En C++, se colocarán en el espacio de nombres std, pero también son globales.

+0

Puede usar '#ifdef __cplusplus' /' # else' para incluir automáticamente las correctas para C o C++. –

8

En C++ es más idiomático usar std::copy que C memcpy, aunque este último funciona igual de bien. Para obtener std::copy, necesita #include <algorithm>.

No hay un equivalente directo de C++ a realloc, sin embargo.

+2

Si pudiera marcar esta respuesta como no útil con un comentario, lo haría porque es incorrecta. Como dijo GMan, realloc se encuentra en . –

+5

No dije que no es posible usar la función de biblioteca estándar C 'realloc' en C++ (ya que, por supuesto, la biblioteca estándar C++ incluye la totalidad de la biblioteca estándar C89). Dije que no hay una nueva función de biblioteca estándar de C++ que abarque la funcionalidad de 'realloc' como' std :: copy' para 'memcpy'. Aunque supongo que mi intención no es obvia si mi respuesta se lee de forma aislada en lugar de junto con la otra respuesta ya aceptada. –

Cuestiones relacionadas