- スレを勃てるまでもないC/C++の質問はここで 23 [転載禁止]©2ch.net
611 :デフォルトの名無しさん[sage]:2015/08/19(水) 23:31:20.42 ID:8uw32tI0 - C言語の初心者なのですが、ある文字列を分割する方法を検討しており、strtokにたどり着きました。
分割したい文字列はhttpリクエストに入っている/aaaa.js/などの値です。 # 今回は拡張子を取得したくstrtokで.を使っ て分割しようとしています。 ただ、このstrtokは元の文字列を破壊してしまうようで、元の文字列は破壊したくなく思っています。 そこで、以下のページを発見しました。適合コード部分を参考にしようと思っています。 @https://www.jpcert.or.jp/sc-rules/c-str06-c.html マロックを使って、別の文字列にコピーしましょうね、ということなんですが、 マロックに詳しくなく、上記でメモリリークや不具合等が起きないか/問題ないのか気になっています。 マロックについて、調査したところ、以下のページの諸注意を見つけました。 Ahttp://www.geocities.co.jp/SiliconValley-Bay/7437/c/malloc.html >>buffの値を変更するというのは別に構わないのですが、freeに渡す前に元の値に戻す必要があります。 この文言を見た限り、@に記載されてるfree(copy);ではちゃんとfreeされないのでは、と懸念しています。 そう思ってるのはcopyはstrtokによって破壊されており、元の値と異なってしまってると思ってるからです。 私の考えは正しいのでしょうか。。。それとも@の書き方で問題ないのでしょうか。 C言語に詳しい方いらっしゃればご教授頂きたいです、m(__)m
|
- スレを勃てるまでもないC/C++の質問はここで 23 [転載禁止]©2ch.net
613 :デフォルトの名無しさん[sage]:2015/08/19(水) 23:43:19.12 ID:8uw32tI0 - >>612
ああ、ごめんなさい。 文字列を別の箱にコピーしたら元の文字列を破壊しなくて済むよね、 という発想で、別の箱にコピーする方法を探してました。 すると@のページが出てきてなれないマロックとかいうものが出てきて困惑したという感じです。 マロックがよくわからないので、@のfreeなどが適切なのかわからず。。。
|
- スレを勃てるまでもないC/C++の質問はここで 23 [転載禁止]©2ch.net
614 :デフォルトの名無しさん[sage]:2015/08/19(水) 23:46:23.94 ID:8uw32tI0 - >>612
そして@の最後でcopy=NULLとしてるのもなんでだろう、、とおもっており。 freeだけだとまずいんですかね。
|