[英]How to copy an array of characters to a char pointer without using strcpy
[英]Copy an Array of Characters into a Pointer of characters
我正在嘗試將char [] array
復制到char * pointer
。
我有2種數據類型: CHAR* dst
和CHAR 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.