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

как освободить только первый элемент массива, не трогая остальные? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Используя поиск в ширину в графе выделить связаные копоненты неориентированного графа http://www.cyberforum.ru/cpp-beginners/thread601628.html
Вот поиск в ширину кратчайшего рсстояния. А как его переделать что бы выделяло компоненты неориентированного графа. Вообще незнаю как помогите пожалуйста. //--------------------------------------------------------------------------- #pragma hdrstop #include <vector> #include <stdio.h> #include <queue> #include <iostream>...
C++ Описать структуру с именем AEROFLOT Описать структуру с именем AEROFLOT , содержащую следующие поля: * название пункта назначения рейса; * номер рейса; * тип самолета; Написать программу, выполняющую следующие действия: * ввод с клавиатуры данных в массив, состоящий из семи элементов типа AEROFLOT; записи должны быть размещены в алфавитном порядке по названиям пунктов назначения; * вывод на экран пунктов назначения и... http://www.cyberforum.ru/cpp-beginners/thread601626.html
Задача на файлы C++
1. Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан файл Bagazh, содержащий сведения о багаже нескольких пассажиров. Сведения о багаже каждого пассажира представляют собой запись с двумя полями: одно поле целого типа (количество вещей) и одно — действительное (вес в кило-граммах). Найти багаж, средний вес одной вещи в котором отличается не более чем на 0,3 кг от общего...
C++ Численно убедится есть ли заданная функция парной или непарной
Численно убедится есть ли заданная функция y = f (x) парной или непарной на заданном отрезке . Высчитать ошибку вычисления и возможные точки разрыва функции. Проверить, например для функций y = x^4, y = tg x, y = e^x выполняя их вычисления на отрезке с шагом 0.1 ( парность - это четность ) Пожалуйста помогите с задачей я в тупике=( bool pair = true; for (double x=0; x<5; x += 0.1) if...
C++ Не видит класса string http://www.cyberforum.ru/cpp-beginners/thread601616.html
Вопрос чисто технический: в VisualStudio 2010 создал тестовый проект. В нём создал файл Class1.h, в нём текст: #pragma once #include <string> class Class1 { public: string val;
C++ Подскажите пожалуйста как выполнить с использованием матрицы и сделать программу z = (a-b)+++-(a+++-3a++b) { cout << z << end; подробнее

Показать сообщение отдельно
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
09.06.2012, 22:16     как освободить только первый элемент массива, не трогая остальные?
Цитата Сообщение от Ksan Посмотреть сообщение
Не совсем понял, что вы имеете ввиду под этим?
Мне 2мя указателями оперировать что ли?
Цитата Сообщение от MikeSoft Посмотреть сообщение
А написать функцию, возвращающую указатель на "нововыделенную" область памяти (с новым указанным размером) разве не сможете?
Примерно так:
C++
1
2
3
4
5
6
char *realloc(char *p, unsigned size){
   char *t = new char[size];
   memset(t, p, size);
   delete [] p;
   return t;
}

Цитата Сообщение от Jtalk Посмотреть сообщение
А как потом доудалить оставшуюся?
Легко. Указатель не обнуляется.
C++
1
2
3
4
5
6
int main(){
   int *a = new int[12];
   delete a++; //была освобождена память для первого элемента
 
   return 0;
}
Впрочем, я не уверен в возможности сего. Когда использовал, утечек не наблюдалось. Но использовал в небольшой программе - просто хотел немного оптимизировать.

Цитата Сообщение от Jtalk Посмотреть сообщение
C плохо работает с массивами
Сложность работы с ними не обуславливает плохую работу. Си просто идеально работает с массивами. Кроме массивов в Си просто ничего нет ;-)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru