Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gastelo56
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 18
#1

Теряю значение переменной char* - C++

20.06.2013, 22:25. Просмотров 267. Ответов 3
Метки нет (Все метки)

Не пойму почему так. В заголовочнике прописано

private:
char *lastfilename;


В одной функции присваиваю ей имя последнего файла в директории, и тут же проверяю, в перемнной все нормально, имя файла
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  
void testFunc::FilesSize(){
  struct stat file_stats;
    DIR *dirp;
    struct dirent* dent;
 
    dirp=opendir("reg");
    do {
        dent = readdir(dirp);
        if (dent)
        {
            lastfilename = dent->d_name;
            printf("%s",lastfilename);
      }
    }while (dent);
    closedir(dirp);
}
Но пытаюсь вывести в след функции переменную lastfilename. И получаю в консоли забор из |||||||||||||
C++
1
2
3
4
5
6
int testFunc::FindHead(char *hmsg){
    FilesSize();
    printf(filepath);
 
    return 1;
}
как так? переменная lastfilename больше нигде не используется
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2013, 22:25     Теряю значение переменной char*
Посмотрите здесь:

C++ проблема с переменной типа char
Проверка конца строки и переменной char. C++
C++ Вывод переменной типа char
как присвоить переменной char значение слова ? C++
Использование переменной типа char в цикле for C++
C++ Теряю значение private члена класса
C++ Вывод адреса переменной типа char
Конвертирование константной строковой переменной в указатель на char C++
Как переменной Char присвоить значение целого текста? C++
C++ Как переменной Char присвоить значение целого текста полученого из файла?
Адрес переменной к типу (char*) C++
Адрес переменной char не выводится C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aLarman
641 / 562 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
21.06.2013, 16:34     Теряю значение переменной char* #2
testFunc, у Вас класс ?
Цитата Сообщение от gastelo56 Посмотреть сообщение
C++
1
2
3
4
5
6
int testFunc::FindHead(char *hmsg)
{ 
FilesSize(); 
printf(filepath); 
return 1; 
}
мне кажется или тут нет вывода переменной lastfilename
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.06.2013, 16:45     Теряю значение переменной char* #3
Цитата Сообщение от aLarman Посмотреть сообщение
мне кажется или тут нет вывода переменной lastfilename
При этом вызове:
Цитата Сообщение от aLarman Посмотреть сообщение
FilesSize();
aLarman
641 / 562 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
21.06.2013, 16:52     Теряю значение переменной char* #4
Цитата Сообщение от gastelo56 Посмотреть сообщение
C++
1
lastfilename = dent->d_name;
предположительно по выходу из функции по этому адресу чистится значение поэтому там "забор"
Yandex
Объявления
21.06.2013, 16:52     Теряю значение переменной char*
Ответ Создать тему
Опции темы

Текущее время: 03:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru