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

質問編集履歴

4

追記

2017/01/20 11:34

投稿

strike1217
strike1217

スコア651

title CHANGED
File without changes
body CHANGED
@@ -41,4 +41,11 @@
41
41
 
42
42
  [追記]
43
43
  実験したのはwindowsです。
44
- visual studioでオプションは何も入れないで、clコンパイルしています。
44
+ visual studioでオプションは何も入れないで、clコンパイルしています。
45
+
46
+ [追記2]
47
+ 私のC言語の本にこう書いてあります。
48
+ > ポインタを他の型へのポインタに型変換することは、その値までもが変わる可能性のある危険な行為であり、注意深く行わなければならない。型や型変換に対して厳密なC++が、voidへのポインタを別の型のポインタに代入する局面で明示的なキャストを必須としているのは、このような危険を避けるためです。
49
+
50
+ えーーーと
51
+ 明示的なキャストすることで、どうしてポインタを他の型へのポインタに変換する際の危険性を避けることができるのでしょうか??

3

追記

2017/01/20 11:33

投稿

strike1217
strike1217

スコア651

title CHANGED
File without changes
body CHANGED
@@ -40,4 +40,5 @@
40
40
  3、この実験コードに修正箇所があれば、教えてください。
41
41
 
42
42
  [追記]
43
- 実験したのはwindowsです。
43
+ 実験したのはwindowsです。
44
+ visual studioでオプションは何も入れないで、clコンパイルしています。

2

追記

2017/01/20 10:21

投稿

strike1217
strike1217

スコア651

title CHANGED
File without changes
body CHANGED
@@ -37,4 +37,7 @@
37
37
 
38
38
  1、この2つ(明示的キャスト、暗黙的キャスト)正直何が違うんですか?? 明示的にキャストする場合としなくても良い場合の違いがわかりません。C/C++でも違いがあるそうですが・・・
39
39
  2、アライメントを考慮すると「暗黙的、明示的関係なく、ポインタを別の型のポインタへのキャストする」のは控えた方がよろしいんですかね???
40
- 3、この実験コードに修正箇所があれば、教えてください。
40
+ 3、この実験コードに修正箇所があれば、教えてください。
41
+
42
+ [追記]
43
+ 実験したのはwindowsです。

1

追記

2017/01/20 10:13

投稿

strike1217
strike1217

スコア651

title CHANGED
File without changes
body CHANGED
@@ -33,8 +33,8 @@
33
33
  これは、「暗黙的にキャストが行われている」と思います。
34
34
 
35
35
  pd = (double *)pc;
36
- こちらは、「明示的にキャストが行われています」
36
+ こちらは、「明示的にキャストが行われています」(多分)
37
37
 
38
- 1、この2つ(明示的キャスト、暗黙的キャスト)正直何が違うんですか?? C/C++でも違いがあるそうですが・・・
38
+ 1、この2つ(明示的キャスト、暗黙的キャスト)正直何が違うんですか?? 明示的にキャストする場合としなくても良い場合の違いがわかりません。C/C++でも違いがあるそうですが・・・
39
39
  2、アライメントを考慮すると「暗黙的、明示的関係なく、ポインタを別の型のポインタへのキャストする」のは控えた方がよろしいんですかね???
40
40
  3、この実験コードに修正箇所があれば、教えてください。