10/04/24 15:36:11
標準ライブラリにstrdupがあります。strdupは内部でmallocします。(>>351の(1)に相当)
char *strdup(const char *s);
char* str = strdup("hogehoge"); //←確保するメモリー領域のサイズはstrdupのおまかせ!○
printf("%s\n", str); //処理の例
free(str); //freeが必要×
同等のことを行うmy_strdupを作ることもできます。my_strdupは内部でmallocしません。(>>351の(2)に相当)
void my_strdup(const char* src, char* dst, int size);
char str[100]; //←コピーする文字列より大きなサイズのメモリーが必要×
my_strdup("hogehoge", str, sizeof(str));
printf("%s\n", str); //処理の例
//freeは必要ない!○
(次に続く)