#include <stdio.h> #include <string.h> void CloneStr(char **dest, const char *src) { size_t len = strlen(src); *dest = new char [len + 1]; char *tDest = *dest; while(*src) { *tDest = *src; ++tDest; ++src; } *tDest = '\0' } int main(int argc, char *argv[]) { const char *src = "hoge"; char *dest = NULL; CloneStr(&dest, src); printf("%s\n", dest); delete[] dest; dest = NULL; return 0; }ちまちまこういうコードを書いていこうと思う。文字列コピーの部分はstrcpyでもいいと思うけど、最近OSS読みにハマってるのであえて書いてみた。
※ 追記
strdupという関数があるそうです。知らんかった。
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { const char *src = "hoge"; // 文字列をクローン char *dest = strdup(src); //出力 printf("%s\n", dest); //メモリ解放 free(dest); dest = NULL; return 0; }
0 件のコメント:
コメントを投稿