C言語で名前を読み取らせて最後に表示させるプログラムを作っています。
Tadao
Tomiaki
Syouji
と入力させると
1人目:Tadao
2人目:Tomiaki
3人目:Syouji
と出力させるのが期待している動作です。
以下のプログラムでは1人目の名前を入力した瞬間、
0x5238D3EC (ucrtbased.dll) で例外がスローされました (Cprogramming.c.exe 内): 0xC0000005: 場所 0x01100000 への書き込み中にアクセス違反が発生しました
という文章が表示されました。
c
1#include<stdio.h> 2 3int main(void) 4{ 5 int i,j; 6 char name[3][30]; //最大30文字の名前を3個格納する配列 7 8 for (i = 0; i < 3; i++) { 9 scanf_s("%s", name[i]); 10 } 11 12 for (j = 0; j < 3; j++) { 13 printf("%d人目:%s", j + 1, name[j]); 14 } 15 16 return 0; 17}
どのような点が間違っているのかをどなたか説明していただけないでしょうか。
また、私はC言語の学習を始めて2か月ほどの初心者なので拙い部分も多いかと思います。
質問以外で「ここをこうした方が良い」という改善点がございましたらご指摘していただけると大変嬉しく思います。
よろしくお願いします。
回答4件
あなたの回答
tips
プレビュー