我想分配一個char*
char*
,如果我使用strcpy
我得到幾個運行時間內存問題,所以我通過使用= operator
簡單分配來解決它。 任何人都可以解釋在使用strcpy
之前應該準備的內容以避免內存問題。我怎樣才能安全地使用strcpy
編輯:
int Function(const char* K,char* FileIN,char* FileOut,int DC)
{
char *fic_in,*n_fic,*fic_out,*fic_dec;
unsigned char k[17];
fic_in = (char*)malloc(60*sizeof(char));
strcpy((char*)k,K);
//strcpy(fic_in,FileIN); //I remove this one
fic_in=FileIN; //and replace it by this
...
http://stackoverflow.com/questions/1258550/why-should-you-use-strncpy-instead-of-strcpy –
您是否預先在目標char *中預留了必要的空間?根據參考(http://www.cplusplus.com/reference/clibrary/cstring/strcpy/): 「爲避免溢出,目標指向的數組大小應足夠長以包含與源相同的C字符串(包括終止的空字符),並且不應該在內存中與源重疊。「 – dunadar
由於技術上的困難,我們暫時無法閱讀您的想法。請顯示代碼。 – Rost