■1.サンプルコード コピペしコンパイル&実行し動作確認してください。 ■2.昔風の書き方でバグのあるサンプルコード このソースコードはバグっているので真似しないでください。力試しに正しく動くように直してみましょ… 続きを読む 【C言語サンプル】
配列の中から 最大値と最小値を見つける
タグ: 配列
【C言語サンプル】
【C言語サンプル】
10進数を2進数に 2進数を10進数に変換
■十進数値を二進文字列変換 intは32bitを前提としています。 ■二進文字列を十進数値に変換 ■使用例と検算 ■コード全部
【C言語サンプル】
数字(1)を英語表記の月(January)に変換する方法
■数字の1を英語表記の月Januaryに変換する ■0月を捨てると 月名配列[mon-1]等の-1が不要になります。 ■C99式の指示付きの初期化子を使うと 「間違ってずれて初期化」する危険が減ります。
【C言語】
配列の添え字チェックを先に
if(buf[idx] && idx < MAX)
(style) Array index ‘idx’ is used before limits check. 警告:配列添え字を範囲チェック前に使った[(style)arrayIndexThenC… 続きを読む 【C言語】
配列の添え字チェックを先に
if(buf[idx] && idx < MAX)
【C言語】
文字列配列の要素数を指定すると終端文字’¥0’が入らず暴走する時がある
■1.暴走するstrlen ■2.暴走するprintf ■3.暴走するstrcmp ■4.暴走するstrcpy これらのプログラムが何と表示するかは動かしてみないと誰にもわかりません異常終了するかもしれません。 配列 a… 続きを読む 【C言語】
文字列配列の要素数を指定すると終端文字’¥0’が入らず暴走する時がある
【C言語】配列の添え字に文字型charを避け整数型intを使おう
warning: array subscript has type ‘char’ 警告:配列の添え字にchar 型[-Wchar-subscripts] ■1.配列の添え字に不適切なchar型 char型は符号付きか、符… 続きを読む 【C言語】配列の添え字に文字型charを避け整数型intを使おう
【C言語】文字配列に終端文字¥0を入れる隙間が無い時はstrNcpyよりC99構造体の指示初期化子が便利
warning: ‘strncpy’ output truncated before terminating nul copying 8 bytes from a string of the same length 警告… 続きを読む 【C言語】文字配列に終端文字¥0を入れる隙間が無い時はstrNcpyよりC99構造体の指示初期化子が便利
【C言語】
配列の添字の型は何が良い?
warning: the frame size of 40 bytes is larger than 0 bytes 警告:スタックフレームサイズは0byte以上の40byte[-Wframe-larger-than=0… 続きを読む 【C言語】
配列の添字の型は何が良い?
【C言語】
メモリ破壊
Out of bounds,
Off-by-one Error
warning: array subscript 10 is outside array bounds of ‘char[10]’ 警告:配列の添え字 10 は ‘char[10]’ の配列境界外… 続きを読む 【C言語】
メモリ破壊
Out of bounds,
Off-by-one Error
【C言語】
配列の要素数とサイズは違う
sizeの変数名で誤解する
warning: ‘memset’ used with length equal to number of elements without multiplication by element size 警告:memse… 続きを読む 【C言語】
配列の要素数とサイズは違う
sizeの変数名で誤解する
【C言語】
配列をずらす時は
memcpyではなくて
memmoveを使おう (restrict)
warning: ‘builtin_memcpy’ accessing 9 bytes at offsets 1 and 0 overlaps 8 bytes at offset 1 警告:転送領域が重なったのでrest… 続きを読む 【C言語】
配列をずらす時は
memcpyではなくて
memmoveを使おう (restrict)
【C言語 】
sizeof(配列)/sizeof(配列[0]) 配列の要素数を求める技は ポインタには使えない
warning: division ‘sizeof (int *) / sizeof (int)’ does not compute the number of array elements 警告:’size… 続きを読む 【C言語 】
sizeof(配列)/sizeof(配列[0]) 配列の要素数を求める技は ポインタには使えない