char *my_strdup2(const char *src)
{
int sz = strlen(src) * 2 + 1; // メモリ確保サイズ:文字数 * 2 + 1(1 for 終端ヌル文字)
char *dst = new char[sz]; // メモリ確保
while( (*dst++ = *src) != '\0' ) {// ヌル文字までコピー
*dst++ = *src++; // もう1文字コピー
}
return dst - sz; // dst は sz だけ進んでいるので、sz を引いたアドレスを返す
}
解説:
前: | 次: