- C++相談室 part134
164 :デフォルトの名無しさん (ワッチョイ 1f7e-T3WU)[sage]:2018/02/17(土) 10:21:38.22 ID:4SqFrjwY0 - 何故stringそのものじゃなくて内部データをdeleteしようと思ったのか
newで確保した配列じゃないからdeleteはできない stringの内部データは静的な配列と動的な配列を組み合わせて表現されている mscvの場合先頭16文字はchar[16]でそれ以降は動的な配列に入るようになっている psz[0]のアドレスはchar[16]の先頭アドレスなので当然deleteできない msvcはdeleteに失敗しても落ちないのかな
|
- C++相談室 part134
173 :デフォルトの名無しさん (ワッチョイ 1f7e-T3WU)[sage]:2018/02/17(土) 17:34:22.09 ID:4SqFrjwY0 - >>167
データは連続しているので同じになる 16文字まではスタックを使い、それ以上の長さになるとヒープにコピーされる 実装ではメンバの配列には何かしらのエスケープ文字が入る ちなみにmsvcでは実装の都合上free(&str[0])で強引に解放できる
|
- C++相談室 part134
174 :173 (ワッチョイ 1f7e-T3WU)[sage]:2018/02/17(土) 17:49:08.26 ID:4SqFrjwY0 - 補足
スタックとヒープを使い分けるかどうかは実装依存 gcc、clang、msvcでは行われている したがって短い文字列でnewを避けるためにstringを使わないというのは意味が無い
|
- C++相談室 part134
200 :デフォルトの名無しさん (ワッチョイ 1f7e-T3WU)[sage]:2018/02/17(土) 23:03:12.11 ID:4SqFrjwY0 - 型を変えるたびに変数名も変えるのか
ごくろうやな
|
- C++相談室 part134
203 :デフォルトの名無しさん (ワッチョイ 1f7e-T3WU)[sage]:2018/02/17(土) 23:25:09.87 ID:4SqFrjwY0 - mとかいらなくねってなって削ったら_から始まるようになった
|
- C++相談室 part134
209 :デフォルトの名無しさん (ワッチョイ 1f7e-T3WU)[sage]:2018/02/17(土) 23:54:40.85 ID:4SqFrjwY0 - 型なんてマウスオーバーなりすれば表示されるだろ
変数名に書いておかなきゃわからないとかメモ帳で書いてるのかよ
|