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

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

Войти
Регистрация
Восстановить пароль
 
stv
26 / 26 / 6
Регистрация: 05.03.2010
Сообщений: 171
#1

Будет ли утечка памяти при выполнении данного кода? - C++

01.06.2010, 17:41. Просмотров 403. Ответов 3
Метки нет (Все метки)

собстна, сабж.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
char* cpy(char* source, int pos, int kolv)
{
    char* dist = new char[kolv+1];
    for(int i=pos; i < pos+kolv; i++)
        dist[i-pos] = source[i];
    dist[kolv] = NULL;
    return dist;
}
int main()
{
    char st[] = "012345789"; 
    char* s = cpy(st, 0, 3);
    cout << s << endl;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2010, 17:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Будет ли утечка памяти при выполнении данного кода? (C++):

Утечка памяти при удалении - C++
Здравствуйте! Возникла проблема при удалении последнего элемента из двусвязного списка. Вот код, где я добавляю элемент в конец...

Утечка памяти при использовании хука - C++
Добрый вечер. Есть Directx hook для x86 под DX9 на C++ . После инжекта в запускается поток с 2-мя функциями: определение адреса функции...

Каким будет результат компиляции и выполнения данного кода? - C++
void main(void) { char alphabet ; int index; for (letter = &quot;A&quot;, index = 0; letter &lt;= &quot;Я&quot;; letter++, index++) alphabet = letter;...

Каким будет результат компиляции и выполнения данного кода? - C++
struct employee { char name ; int office_number; }; using namespace std; void main(void) { employee *worker; worker = new...

утечка памяти при сложении разноразмерных матриц - C++
#include &lt;iostream&gt; using namespace std; class Matrix { private: int **arr; int cols; int rows; public:

Утечка памяти при создании динамической переменной класса - C++
Никак не могу исправить проблему утечки памяти при создании динамической переменной класса class Ship { private: int maxHeight; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,368
01.06.2010, 18:13 #2
1. Будет
2. в 1-й строке должно быть const char* source
3. в 6-й строке должно быть dist[kolv] = 0 или = '\0', но не NULL
stv
26 / 26 / 6
Регистрация: 05.03.2010
Сообщений: 171
01.06.2010, 18:22  [ТС] #3
Можно ли както написать функцию, возвращающую часть строки (указатель на начало этой самой части) без утечки?
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,368
01.06.2010, 21:45 #4
Можно, разумеется. У тебя почти все правильно написано.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
char* cpy(const char* source, int pos, int kolv)
{
        char* dist = new char[kolv+1];
        for(int i=pos; i < pos+kolv; i++)
                dist[i-pos] = source[i];
        dist[kolv] = '\0';
        return dist;
}
int main()
{
        char st[] = "012345789"; 
        char* s = cpy(st, 0, 3);
        cout << s << endl;
        delete[] s;          // вот тут надо освободить память...
        return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2010, 21:45
Привет! Вот еще темы с ответами:

Что будет выведено на экран при выполнении следующей программы при n = 5 ? - C++
Пожалуйста, очень прошу помогите с тестами(( 3)Что будет выведено на экран при выполнении следующей программы при n = 5 ? ...

Как будет выглядеть блок-схема шейкер сортировки для данного кода? - C++
код: #include &lt;iostream&gt; using namespace std; //функция обмена void Swap(int *Mas, int i) { int temp; temp=Mas; Mas=Mas; ...

Ошибка памяти при выполнении, при компиляции не выводит ошибки - C++
ПОмогите плс программа вводит строку символов до точки, а после вычисляет процент согласных в этой строке и выводит их в обратном порядке....

Использование памяти при выполнении программы - C++
Здравствуйте, товарищи. Столкнулись с такой загвоздкой. Есть некая, совершенно небольшая программа, после компиляции которой и запуски...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.06.2010, 21:45
Ответ Создать тему
Опции темы

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