Труд вопреки насмешкам
288 / 165 / 40
Регистрация: 13.07.2017
Сообщений: 3,000
Записей в блоге: 8
1

Увеличить длину указателя, не стирая уже записанные туда значения

23.05.2018, 14:16. Показов 588. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Кто знает, как это сделать? Например, если в указателе записано 1, 2, 3, 4, 5, то сделать 1, 2, 3, 4, 5, 0, 0, 0, желательно без присвоения в цикле.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2018, 14:16
Ответы с готовыми решениями:

Как увеличить размерность массива, не стирая данные из него?
Допустим есть массив: int pole = new int; Я всем его ячейкам присвоил значения. Как...

Как рисовать линию с помощью мыши, не стирая уже нарисованного
public partial class Form1 : Form { Int32 x_begin = new Int32(); Int32...

Как продолжить запись в файл в котором уже есть данные и не стирая их?
Как продолжить запись в файл в котором уже есть данные и не стирая их?

Подскажите, пожалуйста, как записать в txt файл строки(TStringList),не стирая уже имеющую информацию
Подскажите, пожалуйста, как записать в txt файл строки(TStringList),не стирая уже имеющую...

5
61 / 28 / 24
Регистрация: 28.09.2017
Сообщений: 399
23.05.2018, 14:25 2
Etyuhibosecyu, по-моему в c++ такого нет, но можете заполнять массив предварительно.
0
"C with Classes"
1644 / 1401 / 523
Регистрация: 16.08.2014
Сообщений: 5,877
Записей в блоге: 1
23.05.2018, 14:32 3
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
если в указателе записано 1, 2, 3, 4, 5
в указателе записан адрес первого блока данных

Добавлено через 21 секунду
а не сами данные
пример:
C++
1
2
3
4
5
6
7
8
9
int main()
{
    int* p = new int(1);
 
    std::cout << "address: " << p << std::endl;
    std::cout << "data: " << *p << std::endl;
 
    return 0;
}
0
325 / 304 / 173
Регистрация: 16.11.2010
Сообщений: 1,069
Записей в блоге: 9
23.05.2018, 14:33 4
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Кто знает, как это сделать? Например, если в указателе записано 1, 2, 3, 4, 5, то сделать 1, 2, 3, 4, 5, 0, 0, 0,
Использовать vector:
C++
1
2
vector <int> ivector = {1, 2, 3, 4, 5};
ivector.push_back(0);
В vector-е значения хранятся последовательно, как и в массиве. Так что взяв указатель на 1й элемент вектора, получаете тот же список чисел, но с возможностью удаления/добавления элементов
0
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
23.05.2018, 15:14 5
Может имеется ввиду что-то типо этого?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cstring>
#include <cstdlib>
 
int main()
{
  
    const int aP=5;
    
    int * arrayPtr = (int*) malloc(aP*sizeof(int));
    int * newArrayPtr = (int*) calloc(aP+3,sizeof(int));
    
    for (int i=0;i!=aP;i++){
        arrayPtr[i]=i+1;
    }
        
    memcpy(newArrayPtr,arrayPtr,aP*sizeof(int));
    free(arrayPtr);
    
    for(int i=0;i!=aP+3;i++){
        std::cout<<newArrayPtr[i]<<" ";
    }
}
0
134 / 104 / 60
Регистрация: 26.10.2013
Сообщений: 312
23.05.2018, 15:16 6
Цитата Сообщение от netBool Посмотреть сообщение
Так что взяв указатель на 1й элемент вектора, получаете тот же список чисел, но с возможностью удаления/добавления элементов
Стоит добавить, что указатель станет невалидными при ресайзе вектора.

C++
1
2
3
4
    std::vector<int> v = {1, 2};
    std::cout << &v[0] << std::endl;
    v.resize(v.capacity() + 1);
    std::cout << &v[0] << std::endl;
0
23.05.2018, 15:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2018, 15:16
Помогаю со студенческими работами здесь

Прочитать уже записанные данные в файле
Вот имею код который формирует файл. После того как я ввожу данные (окончание ввода результат=1)...

Как выводить результаты в static text, не стирая при этом результаты, которые уже записаны в нем
Как выводить результаты в этот компонент не стирая при этом результаты которые уже записаны в нем....

С помощью указателя на число увеличить значение в 5 раз
Ввести значение 2-х целых переменных а и b. Объявить указатели этих переменных. Большее из них с...

Как узнать длину указателя (в байтах)?
как узнать длину указателя(в байтах) sizeof(указатель)почему то не работает?


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru