Что такое ERR_NOT_INITIALIZED_STRING (4008)? - страница 2

 
" ... если ее объявить без инициализации, а потом использовать например в функциях инкремента \ декремента, то на выходе

вы рискуете получить мусор. (особенно часто это проявляется с локальными переменными объявленными в пользовательских функциях ( чаще объявленными в заголовке функции)) ... "

Как в анекдоте про Василия Ивановича: даже представить себе не могу :)

Если я объявил нечто в заголовке функции, то значение этого нечто, либо ссылка на него, поступит извне, ну а если не поступит, значит либо я инициализировал переменную в самом заголовке (значением по умолчанию), либо компилятор (агрегат, его заменяющий) скажет, что я не прав :)

 
FAQ:

И где же скажите компилятор на моем коде запнется ?

Не поставил минус 1 за Объектс тотал - извините забыл, это как то ...

Нет, Вы декларируете тип переменной внутри цикла.
 
Разницы в цикле или за циклом - нет никакой, ВСЕ переменные компилятором объявляются (резерируется память) заранее.Откройте .ех4 файл, и посмотрите. И еще, мои коды компилятор пропускает уже достаточное количество лет.
 
tara:
" ... если ее объявить без инициализации, а потом использовать например в функциях инкремента \ декремента, то на выходе

вы рискуете получить мусор. (особенно часто это проявляется с локальными переменными объявленными в пользовательских функциях ( чаще объявленными в заголовке функции)) ... "

Как в анекдоте про Василия Ивановича: даже представить себе не могу :)

Если я объявил нечто в заголовке функции, то значение этого нечто, либо ссылка на него, поступит извне, ну а если не поступит, значит либо я инициализировал переменную в самом заголовке (значением по умолчанию), либо компилятор (агрегат, его заменяющий) скажет, что я не прав :)


Верить, или не верить - это ваше право, вот только не надо строить из себя пупа земли.
 
sergeev:

инициализируйте txt до цикла, и симптомы пройдут.

Коротко и ясно. Особенно - если обратить внимание на то, что фактически присутствует та самая, faq-ом упомянутая функция инкремента/декремента.
 
FAQ:

Верить, или не верить - это ваше право, вот только не надо строить из себя пупа земли.

Ладно, не буду :(
 
tara:

Коротко и ясно. Особенно - если обратить внимание на то, что фактически присутствует та самая, faq-ом упомянутая функция инкремента/декремента.


А ну ка ткните ка пальцем в присутствующую в этом куске кода операцию инкремента \ декремента по отношению к неинициализированной переменной name !

   string name, txt;
   double val;
   int err;
        //--
        GetLastError();                             
        //--
        for(int i=0; i<GlobalVariablesTotal(); i++) {
                name = GlobalVariableName(i);
           val  = GlobalVariableGet(name);
           err=GetLastError();
                if(err!=0) {
                   Alert("ERROR! ",err, " name=",name);
                        //continue;     
           }
                txt=txt+i+" "+name+" = "+val+"\n";
        }
   Comment(txt);
 
tara:

Ладно, не буду :(
А вот здесь я погорячился - извиняюсь.
 
FAQ:


А ну ка ткните ка пальцем в присутствующую в этом куске кода операцию инкремента \ декремента по отношению к неинициализированной переменной name !


txt=txt+...

name ни при чем

 
FAQ:
А вот здесь я погорячился - извиняюсь.


Я тоже.

Причина обращения: