The variable is being used without being defined.
От: Аноним  
Дата: 16.09.05 05:53
Оценка:
Добрый день

Пучему когдя я вызываю функцию и передаю ей указатель в ней всё нормально работает, но при выходе htDat принимает прежнее значение ("")?

А когда она не определёна (тобишь орпеделяется как char* htDat то компилятор выдаёт ошибку


Run-Time Check Failure #3 — The variable 'htDat' is being used without being defined.


Какая ему разница определена она или нет? Ведь память под эту переменную выделяется внутри фенкции.

void fn1(char *qqq)
{
qqq = new char[10];
strcpy(qqq, "qqqqqq");
}

int main(int argc, char* argv[])
{
char *htDat;
fn1(htDat);
return 0;
}


Во общем суть проблемы ясна: внутри функции значение указателя который её передаётся возвращается в прежнее положение после выхода из нею.

Спасибо!
Re: The variable is being used without being defined.
От: Нахлобуч Великобритания https://hglabhq.com
Дата: 16.09.05 05:57
Оценка: 2 (1)
Здравствуйте, Аноним, Вы писали:

А>Какая ему разница определена она или нет? Ведь память под эту переменную выделяется внутри фенкции.


Сумбурно как-то

А>void fn1(char **qqq) // Две звездочки надо
А>{
А>    qqq = new char[10];
А>    strcpy(qqq, "qqqqqq");
А>}
HgLab: Mercurial Server and Repository Management for Windows
Re[2]: The variable is being used without being defined.
От: Нахлобуч Великобритания https://hglabhq.com
Дата: 16.09.05 05:58
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Здравствуйте, Аноним, Вы писали:


А>>Какая ему разница определена она или нет? Ведь память под эту переменную выделяется внутри фенкции.


Н>Сумбурно как-то


Н>
А>>void fn1(char **qqq) // Две звездочки надо
А>>{
А>>    *qqq = new char[10]; // Ну и здесь разыменование добавить забыл :)
А>>    strcpy(*qqq, "qqqqqq");
А>>}
Н>
HgLab: Mercurial Server and Repository Management for Windows
Re[2]: The variable is being used without being defined.
От: Ovl Россия  
Дата: 16.09.05 07:12
Оценка: 2 (1) +1
Здравствуйте, Нахлобуч, Вы писали:

Н>Здравствуйте, Аноним, Вы писали:


А>>Какая ему разница определена она или нет? Ведь память под эту переменную выделяется внутри фенкции.


Н>Сумбурно как-то


Н>
А>>void fn1(char **qqq) // Две звездочки надо
А>>{
А>>    qqq = new char[10];
А>>    strcpy(qqq, "qqqqqq");
А>>}
Н>


а можно и так, тогда разыменовывать не придется


void fn1( char* & qqq ) {
    qqq = new char[10];
    strcpy(qqq, "qqqqqq");
}

int main(int argc, char* argv[])
{
    char *htDat;
    fn1(htDat);
    return 0;
}
Read or Die!
Как правильно задавать вопросы
Как правильно оформить свой вопрос
Автор: anvaka
Дата: 15.05.06
Re: The variable is being used without being defined.
От: coom  
Дата: 16.09.05 15:53
Оценка:
Project->Properties->C++->Code Generation->Basic Runtime Checks

попробуй default поставить
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.