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

Расщепление полного пути к файлу на диск, директорий...(неясность в задании) - C++

Восстановить пароль Регистрация
 
NinGAZ
13 / 13 / 1
Регистрация: 27.07.2011
Сообщений: 162
15.12.2012, 22:32     Расщепление полного пути к файлу на диск, директорий...(неясность в задании) #1
Доброго времени суток! Не ожидал от препода излишней адекватности,но сейчас я в ступоре... вот текст задания:
" Написать функцию pathsplit( char *path, char *split[]) для
расщепления полного пути к файлу на диск, директорий,
имя и расширение, которые разместить в
динамической памяти ( malloc ), а указатели на них поместить
в массив указателей.".
Каким образом из функции можно разместить подстроки в динамической памяти? Они ведь удалятся после выхода из функции.. Стоит ли мне идти к преподу и просить изменения ТЗ? И вопрос по функции расщепления aka strtok: если я ее реализую сам(а в данном случае в этом и есть суть),то подстрока должна где-то храниться,верно? Ибо вариант с заменой делиметров на '\0' не катит,т.к. это уже изменение начальной строки. Заранее спасибо,буду очень благодарен ответам.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2012, 22:32     Расщепление полного пути к файлу на диск, директорий...(неясность в задании)
Посмотрите здесь:

C++ #include ,указание файла без полного пути.
C++ Переменная в пути к файлу
C++ Из полного пути к файлу выделить только имя файла
указание пути к файлу C++
C++ ввод пути к файлу с консоли
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
15.12.2012, 22:40     Расщепление полного пути к файлу на диск, директорий...(неясность в задании) #2
Цитата Сообщение от NinGAZ Посмотреть сообщение
Они ведь удалятся после выхода из функции
Нет, они не удаляются. Что создается динамически в функции, то остается в памяти даже после выхода из функции.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
15.12.2012, 22:54     Расщепление полного пути к файлу на диск, директорий...(неясность в задании) #3
NinGAZ, вполне адекватное задание.
strtok изменяет строку, если этого не хотите - работайте с ей копией.
NinGAZ
13 / 13 / 1
Регистрация: 27.07.2011
Сообщений: 162
16.12.2012, 00:01  [ТС]     Расщепление полного пути к файлу на диск, директорий...(неясность в задании) #4
v.a.l.i.d, то есть указатели все-таки будут указывать на существующую область?
MrGluck, спасибо за предупреждение
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
16.12.2012, 11:24     Расщепление полного пути к файлу на диск, директорий...(неясность в задании) #5
Цитата Сообщение от NinGAZ Посмотреть сообщение
то есть указатели все-таки будут указывать на существующую область?
да, все правильно

небольшой пример.
Кликните здесь для просмотра всего текста
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
30
#include "stdafx.h"
#include "iostream"
using namespace std;
 
// создает новую строку и возвращает указатель на ее начало
char *CreateString()
{
    char *str = new char[100];
 
    cout << "Введите строку: ";
    cin.getline(str, 100);
 
    return str;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
 
    char *str1 = CreateString();
    char *str2 = str1;
 
    cout << "str1 = " << str1 << endl;
    cout << "str2 = " << str2 << endl;
 
    delete [] str1;         // Удалить память, которую выделили в совсем другой функции
 
    system("pause");            
    return 0;                   
}
NinGAZ
13 / 13 / 1
Регистрация: 27.07.2011
Сообщений: 162
17.12.2012, 01:29  [ТС]     Расщепление полного пути к файлу на диск, директорий...(неясность в задании) #6
Спасибо всем,кто откликнулся. Задание и правда оказалось тривиальным.
Yandex
Объявления
17.12.2012, 01:29     Расщепление полного пути к файлу на диск, директорий...(неясность в задании)
Ответ Создать тему
Опции темы

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