IT graph

気になったデバイスやプログラムで楽しくやっていけたら良いなと思っております。

C言語の文字列について

以下のように6文字サイズのchar型変数に6文字を入れた場合

char str2[5] = "test23";
import numpy as np
arr = np.array([1, 2, 3])

以下のようにコンパイル時に警告がでる

hello.c:5:16: 警告: initializer-string for array of ‘char’ is too long
    5 | char str2[5] = "test23";
      |                ^~~~~~~~

以下のように6文字分のサイズに5文字を入れた場合

char str2[5] = "test2";

エラーにならず正常に稼働する

out2-0:t
out2-1:e
out2-2:s
out2-3:t
out2-4:2
out2-5:

16進数表記(utf8)で出力すると最期はnullであることがわかる

out2-0:74
out2-1:65
out2-2:73
out2-3:74
out2-4:32
out2-5:0