Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
ra27
Зарегистрирован: 11.02.2003 Сообщения: 1
|
Добавлено: Вт Фев 11 2003 17:17 Заголовок сообщения: Warning: Suspicious pointer conversion... Почему? |
|
|
Подскажите, пожалуйста, почему у меня возникает такое предупреждение при компиляции следующей программы: typedef struct
{ struct NODE **Root; } NODE;
void Fun1(NODE* N) { };
void main()
{ NODE N1; Fun1(*(N1.Root)); } --- Warning: Suspicious pointer conversion in function main.
Как мне кажется, *(N1.Root) должен быть типа "NODE*". |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Вт Фев 11 2003 18:50 Заголовок сообщения: Re: Warning: Suspicious pointer conversion... Почему? |
|
|
Аргумент функции -- указатель, а структура на которую он указывает состоит из указателя на указатель на такую же структуру. Это предупреждение, что ты можешь сделать ошибку в том, что передашь аргументом указатель, желая передать указатель на указатель, или наоборот. В этом и есть подозрительность ("Suspicious"). Для устранения неопределенности попробуй
Fun1((NODE*)*(N1.Root)); |
|
Вернуться к началу |
|
|
ugz Гость
|
Добавлено: Ср Фев 12 2003 09:33 Заголовок сообщения: Re: Warning: Suspicious pointer conversion... Почему? |
|
|
Правильный вариант:
typedef struct _NODE { struct _NODE **Root; } NODE;
void Fun1(NODE* N) { };
void main() { NODE N1; Fun1(*(N1.Root)); } |
|
Вернуться к началу |
|
|
|