LINUX.ORG.RU

ругается gcc


0

0

на такой код:

m_pXShmSegmentInfo->shmaddr = m_pXImage->data = (char*)data = (int*)shmat(m_pXShmSegmentInfo->shmid, 0, 0);

ошибка:

error: ISO C++ forbids cast to non-reference type used as lvalue

почему ?

тип m_pXImage->data = char*
тип m_pXShmSegmentInfo->shmaddr - также char* !

Спасибо.

anonymous

А как вот это должен интерпретировать компилятор?

(char*)data = (int*)shmat(m_pXShmSegmentInfo ...

Сначала привести data к чему-то, а потом "туда" присвоить? Не умеет он так.

anonymous
()

Потому что (char*)data является lvalue и cast to non-reference type.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.