2010-02-17 30 views

回答

35

在C:

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

在C++中,取出.h和前綴與c。在C++中,它們將放置在std命名空間中,但也是全局的。

+0

您可以使用'#ifdef __cplusplus' /'#else'自動爲C或C++包含正確的值。 –

8

在C++中,使用std::copy比C的memcpy更習慣,儘管後者的工作方式也一樣。要獲得std::copy,您需要#include <algorithm>。儘管如此,沒有直接的C++等價於realloc

+2

如果我可以將此答案標記爲對評論無用,我會這樣做,因爲它不正確。正如GMan所說,realloc在中找到。 –

+5

我沒有說在C++中使用C標準庫函數'realloc'是不可能的(因爲當然,C++標準庫包含整個C89標準庫)。我說過,沒有一個新的C++標準庫函數將'realloc'的功能作爲'std :: copy'用於'memcpy'。雖然我想我的意圖不明顯,如果我的答案是孤立閱讀,而不是與其他已經接受的答案相結合。 –

相關問題