###前提・実現したいこと
お世話になります。intだけでなく型を意識するということで、char型配列に数字を格納して、その後演算できる数値として出力するプログラムを考えました。
4つの数字を一度に入れて4つの大小を比較するプログラムにする予定です。
配列の要素にそれぞれ数字を格納したいため、int型配列は使えないですよね?
先日の配列で使用したgetchなどはまだいまいち理解できなく一から作成するには使えずにいます。
###発生している問題・エラーメッセージ
以下のコードを読んだ際に警告が出てしまいます。
Run-Time Check Failure #2 - Stack around the variable 'number_inp' was corrupted.
###該当のソースコード
C
1#define _CRT_SECURE_NO_WARNINGS 2#include<stdio.h> 3#include<stdlib.h> 4 5int main() 6{ 7 char number_inp[4]; 8 short int num[4]; 9 short int i; 10 11 scanf("%s", number_inp); 12 for (i = 0; i < 4; i++) 13 num[i] = number_inp[i] - '0'; 14 15 printf("%d", num[1]); 16 return 0; 17 18}
###試したこと
エラー内容を調べてみたところ領域を超えて確保してしまった、という内容でした。
書式文字列がいまいち理解できず、躓いています。
char型からint型にする際に符号拡張されてしまうという話も聞いてunsignedも試してみましたがよくわかりませんでした。
変換指定子や変数型の理解が足りてないならばそちらのキーワードを教えていただけるとありがたいです。
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/29 01:43
2017/06/29 02:05
2017/06/29 02:53 編集
2017/06/29 03:15
2017/06/29 08:07