質問するログイン新規登録

回答編集履歴

2

ms asan

2019/12/17 05:24

投稿

yumetodo
yumetodo

スコア5852

answer CHANGED
@@ -38,7 +38,7 @@
38
38
 
39
39
  [https://wandbox.org/permlink/v0c1cR7NzOfaPydd](https://wandbox.org/permlink/v0c1cR7NzOfaPydd)
40
40
 
41
- AddressSanitizerに掛けると
41
+ Linux上でAddressSanitizerに掛けると
42
42
 
43
43
  ```
44
44
  ./a.out
@@ -99,7 +99,7 @@
99
99
  ==5022==ABORTING
100
100
  ```
101
101
 
102
- のように言われます。
102
+ のように言われます。([MicrosoftがMSVCに試験実装したASan](https://devblogs.microsoft.com/cppblog/addresssanitizer-asan-for-windows-with-msvc/)は何も言ってこない、Releaseビルドでしか使えないから最適化でUBだから吹き飛んでるので見つからないんじゃないかと推測)
103
103
 
104
104
  ちなみにメンバー関数の宣言時にref qualifierをつけるとコンパイル時にこのようなことを防げます。
105
105
 

1

a

2019/12/17 05:24

投稿

yumetodo
yumetodo

スコア5852

answer CHANGED
@@ -147,4 +147,12 @@
147
147
 
148
148
  # 4つ目の例
149
149
 
150
+ ```cpp
151
+ str str_exist;
152
+ for (auto e : str_exist.get_vec()) // これも危険?
153
+ {
154
+ cout << e << endl;
155
+ }
156
+ ```
157
+
150
- 3つ目と同様なので割愛します。
158
+ 安全です。3つ目と同様なので割愛します。