VCのmallocはスレッドセーフ?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ろびん

VCのmallocはスレッドセーフ?

#1

投稿記事 by ろびん » 14年前

VC++2010ExpressEditionを使用しています。
aligned_mallocを使用してnewをオーバーロードしようと思っているのですが、
ふとmalloc系の関数はスレッドセーフなのかどうか疑問に思いました。
スレッドセーフならばnew内にスレッドセーフの機構を設けなくてもいいかと思いますが、
そうでないならばスレッドセーフの機構を設けなければいけないかと思います。
分かる方いましたらお願いいたします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: VCのmallocはスレッドセーフ?

#2

投稿記事 by softya(ソフト屋) » 14年前

malloc自体はスレッドセーフですが、いろんなのが交じると動作は保証されないと思います。
aligned_mallocは使ったことが無いのでわかりません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ろびん

Re: VCのmallocはスレッドセーフ?

#3

投稿記事 by ろびん » 14年前

返信ありがとうございます。
基本的にはスレッドセーフと理解しました。あまり複雑なことはしないので大丈夫だろうと思います。
aligned_mallocもスレッドセーフだと信じて使うことにします。(何かバグ等が起こればそのときに・・・)
ありがとうございました。

たかぎ
記事: 328
登録日時: 15年前
住所: 大阪
連絡を取る:

Re: VCのmallocはスレッドセーフ?

#4

投稿記事 by たかぎ » 14年前

_aligned_mallocも内部的にはmallocを呼び出していますので、mallocがスレッドセーフなら_aligned_mallocもスレッドセーフです。
要するに、サイズと得られたポインタの調整をmallocの前後でやっているだけです。

閉鎖

“C言語何でも質問掲示板” へ戻る