質問編集履歴

2

プログラム追加

2021/05/17 03:37

投稿

pokemonta
pokemonta

スコア170

test CHANGED
File without changes
test CHANGED
@@ -43,3 +43,27 @@
43
43
  }
44
44
 
45
45
  ```
46
+
47
+ 以下のプログラムに変更すると
48
+
49
+ 8
50
+
51
+ 8
52
+
53
+ numberも構造体も正しい値が出力されませn
54
+
55
+ ```C
56
+
57
+ int main(void)
58
+
59
+ {
60
+
61
+   printf("%ld\n",sizeof(&student));
62
+
63
+   printf("%ld\n",sizeof(&student.number));
64
+
65
+
66
+
67
+ return 0;
68
+
69
+ }```

1

コード変更

2021/05/17 03:36

投稿

pokemonta
pokemonta

スコア170

test CHANGED
File without changes
test CHANGED
@@ -2,25 +2,13 @@
2
2
 
3
3
  取得したいです。どのようにすれば出力できるのでしょうか
4
4
 
5
- 下記のエラーが発生します。
6
-
7
- Main.c:16:17: error: unexpected type name 'student': expected expression
8
-
9
- printf("%p\n",&student);
5
+ &studentを介してnumberのサイズが取得できません
10
-
11
-
12
6
 
13
7
 
14
8
 
15
9
  ```c
16
10
 
17
- #include <stdio.h>
18
-
19
- #include <string.h>
20
-
21
-
22
-
23
- typedef struct {
11
+ struct {
24
12
 
25
13
  int year; /* 学年 */
26
14
 
@@ -44,9 +32,9 @@
44
32
 
45
33
  printf("%ld\n",sizeof(student));
46
34
 
47
- printf("%p\n", &student);
35
+ printf("%p\n",&student);
48
36
 
49
-   printf("%ld\n",sizeof(student->number));
37
+   printf("%ld\n",sizeof(student.number));
50
38
 
51
39
 
52
40