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

回答編集履歴

1

内容修正

2017/03/10 10:15

投稿

tacsheaven
tacsheaven

スコア13707

answer CHANGED
@@ -7,10 +7,18 @@
7
7
  この noname は int型へのポインタである str を受け取っていますから、
8
8
  sizeof(str) は「int型のポインタの占めるサイズ」を返します。
9
9
 
10
- そもそもこれ、
10
+ そもそも
11
11
  ```C
12
- int noname(char* str) {
12
+ int main() {
13
- ...
13
+ char[] str = "ABCDE";
14
- }
14
+ char* str2 = "12345";
15
+
16
+ printf("sizeof(str)=%d\n", sizeof(str));
17
+ printf("sizeof(str2)=%d\n", sizeof(str2));
15
18
  ```
19
+ をやると、
20
+ ```
16
- でないと変でしょう。
21
+ sizeof(str)=6
22
+ sizeof(str2)=4
23
+ ```
24
+ と出てきますね。つまりは int noname() に対しては、どうにかして「配列全体」を渡してやらないと意図したような動きはしてくれないのです。