こんにちは。
C言語にもいつの間にかconstが取り入れられていたのですね。
"Scheduler attributes of new thread"
の厳密な型はchar const*
です。
char const*
の意味は「char型のポインタでポイント先を書き換えない」です。これに対してchar*
は「char型のポインタでポイント先を書き換える」です。
ポイント先を書き換えないポインタを、ポイント先を書き換えるポインタへコピーすると、ポイント先を書き換えるコードがコンパイル・エラーにならなくなります。
つまり、間違って書き換えてしまう「バグ」を検出できなくなるのです。
ですので、char const*
型のポインタをchar*
型のポインタで受けようとした時点でコンパイル・エラーになります。
可能であれば次のようにするのが好ましいです。
C
1static void display_thread_sched_attr(char const* msg)
2{
3 printf("%s\n", msg);
4}
当然ですが、もし、display_thread_sched_attr()でmsgの中身を書き換えるなら上記対策ではダメです。"Scheduler attributes of new thread"
を直接渡してはいけません。一旦書き換え可能な配列へ放り込んでから渡しましょう。
C
1char str[]="Scheduler attributes of new thread";
2display_thread_sched_attr(str);
3
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。