Проблема с древним кодов в Cygwin/GCC 3.x/4.x (ISO C++ forbids cast to non-reference ... lvalue)

May 09, 2011 17:37

Может быть кто-то встречался или вещь настолько очевидная, что нагуглить невозможно... Есть древний код, где имеются такого рода функции ( Read more... )

Leave a comment

Comments 8

iratus August 30 2011, 15:06:07 UTC
Это отрывок из классического теста при приеме на работу
написать свою реализацию маллока с проверкой

Reply


это не cpp iwr August 30 2011, 17:00:38 UTC
// ((byte*)mem) -= 4;

{
byte *temp = (byte *)mem;
mem = temp - 4;
}

Reply


dinozavrik August 30 2011, 20:21:33 UTC
Как программист программисту скажу - если дело только в паре функций (alloc/free), то проще их переписать, ей-богу. Тем более что и высоким стилем программирования они не отличаются.

Reply


softmaster August 30 2011, 22:03:00 UTC
а где ошибка-то вылезает?
не в
mem -= 4;
?

если там, то просто поменять на такой же
((byte*)mem) -= 4;
как и вверху.

Reply

kisa_i_osya August 31 2011, 11:49:13 UTC
Ага, именно так и сделано. Спасибо.

Reply


some41 August 31 2011, 01:20:04 UTC
в ((byte*)mem) уберите каст вообще, gcc разрешает арифметику на void*, что используется чуть ниже

Reply


Leave a comment

Up