新・明解c言語の演習問題での疑問です
Posted: 2017年6月09日(金) 00:03
新・明解c言語演習11-6
「文字列sの中に、文字cが含まれていれば、その文字へのポインタを返し、含まれていなければ空ポインタを返す関数を作成せよ。添字演算子を用いずに実現すること」
char *str_chr(const char *s, int c) { /* ... */ }
この課題を解いている最中です。課題の答えも知りたいのですが、それ以前に納得できないエラーが出たので質問します。プログラムとエラーは以下の通りです。
書いた関数
char *str_chr(const char *s, int c)
{
int *t = s;
return t;
}
エラー
warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
char *t = s ;
^
どうもconstの影響で関数内のポインタに値を代入できないようなのですがポインタの内部をいじっているわけでは無く、なぜエラーとなるのか理解できません。
また、課題にはconstを用いることが指定されているので、このエラーが出る限り、この課題の答えも分かりません。
分かる方、お返事待っております。
「文字列sの中に、文字cが含まれていれば、その文字へのポインタを返し、含まれていなければ空ポインタを返す関数を作成せよ。添字演算子を用いずに実現すること」
char *str_chr(const char *s, int c) { /* ... */ }
この課題を解いている最中です。課題の答えも知りたいのですが、それ以前に納得できないエラーが出たので質問します。プログラムとエラーは以下の通りです。
書いた関数
char *str_chr(const char *s, int c)
{
int *t = s;
return t;
}
エラー
warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
char *t = s ;
^
どうもconstの影響で関数内のポインタに値を代入できないようなのですがポインタの内部をいじっているわけでは無く、なぜエラーとなるのか理解できません。
また、課題にはconstを用いることが指定されているので、このエラーが出る限り、この課題の答えも分かりません。
分かる方、お返事待っております。