C言語の事訊いて!!!第.38支部
■ このスレッドは過去ログ倉庫に格納されています
0760751
NGNGポインタの代入やパラメタ渡しの際には、変数と値がcompatibleであるか、
値が変数へconversionできる必要がある。
const TへのポインタとTへのポインタはcompatibleでない。
TへのポインタはT constへのポインタにconversionできる。
なので、char ** 型の値((char*)へのポインタ)は、
char *const *p ((char *)constへのポインタ型変数)には代入できるが、
const char **p ((const char)*へのポインタ型変数)に
代入することは出来ない。
同様に、double (*)[N] ((大きさNのdouble配列)へのポインタ)は、
double const (*)[N] ((大きさNのdouble constの配列)へのポインタ)
に代入できない。
ISO-C99規格の6.3.2.3と6.7.3を参照。
■ このスレッドは過去ログ倉庫に格納されています