回答編集履歴

2

%td に変更

2020/05/22 10:26

投稿

PingHermit
PingHermit

スコア478

test CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
  }
42
42
 
43
- printf("%d\n", ptr - buffer);
43
+ printf("%td\n", ptr - buffer);
44
44
 
45
45
  return 0;
46
46
 

1

ソースコード追加

2020/05/22 10:26

投稿

PingHermit
PingHermit

スコア478

test CHANGED
@@ -13,3 +13,37 @@
13
13
  通常、ptrdiff_t 型になりますが、終端文字の '\0' のポインタの方が大きいので、
14
14
 
15
15
  size_t 型にして返します。
16
+
17
+
18
+
19
+ 関数にしない例
20
+
21
+ ```
22
+
23
+ #include <stdio.h>
24
+
25
+ int main()
26
+
27
+ {
28
+
29
+ char buffer[128];
30
+
31
+ char *ptr = buffer;
32
+
33
+ scanf("%s", buffer);
34
+
35
+ printf("%s\n", ptr);
36
+
37
+ while (*ptr != 0) {
38
+
39
+ ptr++;
40
+
41
+ }
42
+
43
+ printf("%d\n", ptr - buffer);
44
+
45
+ return 0;
46
+
47
+ }
48
+
49
+ ```