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

Динамическая память - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Информация о процессоре http://www.cyberforum.ru/cpp-beginners/thread615720.html
Провет. Такая проблема. Следующий код не работает. Он компилируется, но при запуске вылетает исключение. #include <cstdlib> #include <iostream> #include <windows.h> using namespace std; int main(int argc, char *argv) { SYSTEM_INFO *sysinf;
C++ Динамическое распределение памяти Ни разу не работал с динамическим распределением. Объясните пжл, что я сделал не так. Цель - получить большую область памяти (состоящей из небольших кусков) для того, чтобы потом использовать ее для хранения текста. Прошу объяснить именно на примере malloc (), а не new/free; #define check if (!text ) {printf ("\n NO MEMORY"); return 0;} int main () { char** text = {}; for (int i = 0; i... http://www.cyberforum.ru/cpp-beginners/thread615714.html
Работа с DLL C++
Всем доброго времени суток. Кто может подсказать как в DLL передать переменную, потом в DLL функция её обработает, и как после этого забрать из этой функции результат обработки обратно для работы с ним основной программой?
C++ Знак градуса для функции TextOut
Как его обозначить? Есть дабл, с него надо сформировать си-строку для вывода этой функцией курса на экран в градусах и минутах.
C++ Реализовать класс Account, представляющий собой банковский счет. В классе должны быть четыре поля http://www.cyberforum.ru/cpp-beginners/thread615681.html
Реализовать класс Account, представляющий собой банковский счет. В классе должны быть четыре поля: фамилия владельца, номер счета, процент начисления и сумма в рублях. Открытие нового счета выполняется операцией инициализации. Необходимо выполнять следующие операции: сменить владельца счета, снять некоторую сумму денег со счета, положить деньги на счет, начислить проценты, перевести сумму в...
C++ Добавить функции в класс Есть класс который содержит данные о студентах и функции, которые позволяют добавлять/удалять студента. Как 1. Сделать проверку, что бы в текстовые поля нельзя было заносить цифры. 2. Добавить функцию, которая бы позволяла изменять данные конкретного студента? заголовочный #include <conio.h> #include <string.h> #include <stdlib.h> #include<stdio.h> #include<windows.h> #include<iostream> подробнее

Показать сообщение отдельно
OcbMuHor
Заблокирован
28.06.2012, 14:47     Динамическая память
Цитата Сообщение от Ksan Посмотреть сообщение
KATbIK,в том-то и дело, что я не хочу тратить время на запись все в третий, а хочу напрямую склеить их. Как будто это изначально был бы один массив. Как сделать это?
распределением памяти занимается ОС и даже не факт что множество физических адресов ОП будет последовательным, тогда как виртуальные адреса будут таковыми. Ты можешь только создать третий массив и скопировать в него элементы из двух других массивов. Это можно сделать, но программа может обрушить всё и вся. Вот пример, он естественно завершит программу с ошибкой сегментации segmentation fault
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
31
32
33
34
35
36
37
38
#include <iostream>
#include <iomanip>
 
void fill( int* point, unsigned size )
{
    for ( unsigned i = 0; i < size; ++i  )
        std::cin >> point[ i ];
}
 
void dump( int* point, unsigned size )
{
    for ( unsigned i = 0; i < size; ++i )
        std::cout << std::setw( 3 ) << point[ i ];
    std::cout << std::endl;
}
 
int main()
{
 
    const unsigned n = 4, m = 5;
    unsigned i = 0;
    int *m1 = new int [ n ], *m2 = new int[ m ], *k = m1;
 
    fill( m1, n );
    fill( m2, m );
 
    while( i < n + m ) 
        k[ i ] = ( i < n ? m1[ i++ ] : m2[ i++ - n ] ) ;
 
    dump( m1, n );
    dump( m2, m );
    dump( k, n + m );
 
    delete [] m1;
    delete [] m2;
 
    return 0;
}
а так чтобы "подвинуть" указатель на начало m2 к указателю конца m1, то это нарушит структуру программы.
 
Текущее время: 17:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru