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

回答編集履歴

2

追記

2021/07/02 22:32

投稿

y_waiwai
y_waiwai

スコア88180

answer CHANGED
@@ -5,4 +5,26 @@
5
5
  a[20]ではアクセス違反となります
6
6
 
7
7
  でもひとつ、C言語における文字列、というのは、後端に'\0'が入っている文字配列です。
8
- なので、20バイトの配列に入れることのできる文字列は19文字分まで、となります
8
+ なので、20バイトの配列に入れることのできる文字列は19文字分まで、となります
9
+
10
+ ---
11
+ ```C
12
+ #include <stdio.h>
13
+ #include <string.h>
14
+
15
+ void heruprint(char*s)
16
+ {
17
+ for(int i=strlen(s)-1;i>=0;i--){
18
+ puts(s);
19
+ s[i]='\0';
20
+ }
21
+ }
22
+
23
+
24
+ int main(void){
25
+ char s[]="123456789";
26
+ heruprint(s);
27
+
28
+ }
29
+
30
+ ```

1

追記

2021/07/02 22:32

投稿

y_waiwai
y_waiwai

スコア88180

answer CHANGED
@@ -2,4 +2,7 @@
2
2
 
3
3
  として定義したら、とり得るインデックスは、
4
4
  a[0]からa[19]までです。
5
- a[20]ではアクセス違反となります
5
+ a[20]ではアクセス違反となります
6
+
7
+ でもひとつ、C言語における文字列、というのは、後端に'\0'が入っている文字配列です。
8
+ なので、20バイトの配列に入れることのできる文字列は19文字分まで、となります