簡體   English   中英

將字符數組復制到字符指針中

[英]Copy an Array of Characters into a Pointer of characters

我正在嘗試將char [] array復制到char * pointer

我有2種數據類型: CHAR* dstCHAR src[]

我的目標是在不使用任何C ++定義(例如new or delete情況下執行此操作。

如您所理解的,這意味着我正在尋找可以使用的操作,但不會增加編譯的大小。

我嘗試了什么?

*src = '\0';
strcpy(dst, src);

strncpy(dst, src, sizeof(src));

基本上,我很困,沒有人能給我任何想法嗎?

您需要以某種方式為目標分配內存,您不能只是“復制到指針”,因為它沒有指向任何內容。

如果需要C分配方式-通常使用malloc和類似的函數。

dst = (char*)malloc(strlen(src)+1);

您還可以指向代碼中現有的預分配緩沖區

char[100] buffer;
dst = buffer + 42; // pointing to somewhere in the middle.

一些C運行時還允許在內存上動態分配內存(例如alloca,如果您只需要在當前函數中使用內存就可以)。

復制時,請注意不要超過目標位置上可用的內存量,否則會導致無法預料的不良結果(崩潰,程序內存損壞,隨機行為)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM