У мене є питання про попередження "призначення від несумісного
типу вказівника". Чому наступний код
const char files[][128]={"file1","file2","file3"};
char **ptr;
ptr=files;
виробляти це попередження? Щось більш складне працює просто
чудово:
typedef struct
{
double **matrix;
}foo_struct;
void fun(foo_struct *foo)
{
double **ptr;
ptr=(*foo).matrix;
}
Тому я не можу зрозуміти, чому перше дає це попередження, тому
що я думав, що щось на зразок файлів [] [128] має такий же тип, як
char ** ptr. Єдина різниця, яку я бачу в тому, що C знає про
пропуск/розмір дійсної області пам'яті, тоді як у другому прикладі
це не так.
Here's something similar, which didn't help me though:
Warning about assignment from incompatible pointer type when using
pointers and arrays?
Дякую за твою допомогу!