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

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

Восстановить пароль Регистрация
 
Lawlietb32
 Аватар для Lawlietb32
14 / 14 / 2
Регистрация: 31.03.2011
Сообщений: 118
04.12.2011, 16:24     Заходя в функцию сбрасывается адрес строки #1
Вообщем проблема в следующем... я получаю имя файла в формате: 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++

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

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

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