LINUX.ORG.RU
 

Присвоение значения указателю в С++


0

0

Нифига не понимаю.

Кусок программы:

struct SomeStruct{
  ...
};

struct Chain{
  SomeStruct* start;
  SomeStruct* finish;
};

Chain merge(Chain chain1, Chain chain2){
  Chain result;
  result.start = 0;
  result.finish = 0;
  if(result.finish)
  ...
  else
    result.start = chain1.start;
  return result;
}

версия gcc - 3.2.2
при отладке в DDD указателям не присваивается нулевое значение, остается то, которое было при предыдущем вызове merge. Хотя условие в скобках нулевое, проиходит переход на else, но присвоение значения опять не происходит.
Переменные локальные, что за фигня?


[#]  

Re: Присвоение значения указателю в С++

По-моему проблема в DDD, кажет что-то не то.

** ()
[#]  

Re:

А что вместо многоточия? Может там фигурные скобки поставить?

** ()
[#] Ответ на: Re: от Murr 02.12.2003 13:55:54  

зачем?

Код после if не выполняется происходит переход на else, при том, что в голом gdb просмотр (bool)(result.finish) дает true. Но if(result.finish) идет на else. Какой-то бред, качаю gdb 6.0, у меня щас 5.3.

** ()
[#] Ответ на: зачем? от hapchu 02.12.2003 14:04:25  

Re: зачем?

В том смысле, что я значение проверяю сразу после присвоения нуля, вообще код после if закомментировал, там пусто.

** ()
[#] Ответ на: Re: зачем? от hapchu 02.12.2003 14:07:32  

Re: Re: зачем?

Ндааа. Вылечилось установкой gdb 6.0 :)

** ()