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

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

Войти
Регистрация
Восстановить пароль
 
Lawlietb32
 Аватар для Lawlietb32
14 / 14 / 2
Регистрация: 31.03.2011
Сообщений: 118
#1

Заходя в функцию сбрасывается адрес строки - C++

04.12.2011, 16:24. Просмотров 254. Ответов 0
Метки нет (Все метки)

Вообщем проблема в следующем... я получаю имя файла в формате: C:\folder\text.txt Мне необходимо добавить после каждого слеша ещё один такой (C:\\folder\\text.txt) или заменить на противополоный (C:/folder/text.txt) С этим проблем нет, когда все делаю в одной функции, но когда я добавил функцию, которая получает char* и должна возвращать char*, то как только захожу в тело функции моя переменная обнуляется...

C++
1
2
3
4
5
6
7
8
9
10
char *fn=NULL;
char *file=NULL;
...
file = OpenTXT(hWnd);
if (file!=NULL)
{
fn = NormalizeFileName(file);
f = fopen(fn, "r");
Pixels = ReadTXT(f, &rCount);
}
А вот функция:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
char *NormalizeFileName(char *filen)
{
    if (filen!=NULL)
    {
        char buf[255];
        char *filename="";
        int i, k;
        memset(buf, 0, sizeof(buf));
        i=0;
        k=0;
        while (filen[i]!='\0')
        {
            if (filen[i] != '\\')
                buf[k]=filen[i];
            else
            {
                buf[k]='\\';
                buf[++k]='\\';
            }
            k++;
            i++;
        }
        i=0;
        while (buf[i]!='\0')
            filename[i] = buf[i];
        return filename;
    }
    return NULL;
}
В режиме отладки захожу в функцию переменная filen = "C:\tester.txt" После первого шага (указатель на if(filen!=NULL)) Она уже равна ""
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2011, 16:24     Заходя в функцию сбрасывается адрес строки
Посмотрите здесь:

C++ флаг сбрасывается
Сбрасывается значение переменной C++
динамический двумерный массив (получить адрес на первый элемент первой строки) C++
Подскажите, где я ошибся. Программа принимает ввод и сбрасывается C++
Адрес начала строки C++
Передача строки в функцию C++
Передача строки в функцию C++
C++ Сбрасывается форматирование std::stringstream при очистке потока
C++ Получить адрес переменной, и сохранить в виде строки
Как передать адрес объекта через функцию C++
C++ Адрес строки в текстовом файле
C++ Написать функцию, которая получает в качестве параметров адрес числового массива данных и его размер

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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