Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Произведение всех цифр двух чисел https://www.cyberforum.ru/ cpp-beginners/ thread1669079.html
Найдите произведение всех цифр двух чисел. Входные данные: в единственной строке входа записаны два числа, разделенные одним пробелом. Числа не превышают по модулю 100000. Выходные данные: единственное число - произведение всех цифр введенных чисел. Пример входных данных -11 345 Пример выходных данных 60
Противоречивость обучающей выборки, работа с массивом C++
Здравствуйте! Помогите, пожалуйста, с такой задачей. Это реализация нахождения противоречивости обучающей выборки. Пусть имеется массив klass, состоящий из 45 элементов: 1 1 1 2 1 1 1 1 2 2 1 1 1 1 1 1 3 1 1 3 1 2 1 1 1 1 3 1 1 1 3 1 1 1 1 3 1 1 1 1 1 1 1 1 1. Необходимо выполнить следующее: зафиксировать первые 5 элементов этого массива (с нулевого по четвертый) и начиная с первого...
C++ Определить является ли первая и последняя цифра числа одинаковой В диалоговом режиме задаётся длинное целое число А (long int). Определить является ли первая и последняя цифра числа одинаковой. https://www.cyberforum.ru/ cpp-beginners/ thread1669056.html C++ Перевести символ в биты Здравствуйте. Уделите минутку, если не сложно. Моя цель: вывести битовую кодировку символа из ASCI таблицы, в идеале, конечно, загнать их потом в массив, но успехи пока только такие. Есть код: int main(int argc, char* argv) { char text; cout << "Enter the symbol: "; cin >> text; for(int i=0; i<8; i++) { printf("%d", (text>>i)&1); } https://www.cyberforum.ru/ cpp-beginners/ thread1669052.html
C++ Как преобразовать число float в int без потери данных?
Здравствуйте, форумчане. Столкнулась с такой проблемой: для работы программы требуется целое число, но вводится число типа float. Так вот, нужно преобразовать число float так, чтобы не потерять дробную часть, т.е. чтобы компьютер читал float-е число как int-е. Есть строчка: int a = *((int*)&x); Так это преобразование можно сделать?
C++ Создать функцию вывода суммы чисел кратных трём согласно условию https://www.cyberforum.ru/ cpp-beginners/ thread1669031.html
функция должна выводить сумму чисел которые крптны трем, в диапазоне от трех до 3K, при этом сумма не должна быть больше чем А. не могу понять как сделать функцию, менял названия переменных, но, всегда выдается Ошибка 4 error C4700: использована неинициализированная локальная переменная #include <iostream> using namespace std;
C++ Сортировка в векторе https://www.cyberforum.ru/ cpp-beginners/ thread1669027.html
Нужно отсортировать студентов в векторе по размеру стипендии от большей к меньшей. Для этого у меня есть френд функция в классе но как реализовать эту сортировку не понимаю. bool sort_arr(std::vector<Students> &vec) //Сортировка по размеру стипендии от большей к меньшей { int index; int k = 0; for (auto it = vec.begin(), end = vec.end(); it != end; ++it) { k++; if (it->stepend <...
C++ Адрес массива
Здравствуйте, есть один вопросик который не дает спокойно спать. Как в c++ задавать адрес (индекс) двухмерного массива. Мне в программе надо что бы адрес массива был таким какой я захочу... Например что бы строки именовались от A до F а столбцы от 1 до 8
C++ Как работать с геттерами и сеттерами? https://www.cyberforum.ru/ cpp-beginners/ thread1669025.html
Подскажите, пожалуйста, как с помощью геттеров и сеттеров изменять свойства объектов? Дано: класс Box с объектами - b(), b1(1), b2(1, 2), b3 (2, 3, 5) ... - некоторыми коробками с различными параметрами. Задание: 1) вывести параметры по умолчанию (длину, ширину, высоту) для объектов b(), b1, b2. Это просто и понятно: cout<<b.getL()<<' '<<b.getW()<<' '<<b.getH()<<endl;...
C++ Переписать компоненты текстового файла f в файл g, вставляя в начало каждой строки по одному пробелу Дан текстовый файл f. Переписать компоненты файла f в файл g, вставляя в начало каждой строки по одному пробелу. Порядок компонент должен быть сохранен. Помогите пожалйста нужен код на с++. https://www.cyberforum.ru/ cpp-beginners/ thread1669018.html
Сортировка слов в строке по длине слова C++
Помогите пожалуйста с алгоритмом сортировки строки. Необходимо осуществить сортировку строки чтобы в начале строки располагалось слово максимальной длины, а в конце строки - минимальной. Не совсем понимаю как реализовать данный алгоритм. Мудрил, но так ничего и не получилось. Примерно в голове понимаю что надо сделать. Но на реализацию не хватает знания. Задать строку размером n символов....
C++ Файлы и структура Дан файл OFFICE, содержащий сведения о сотрудниках фирмы (фамилия, имя, год рождения, стаж). Найти однофамильцев, стаж которых 25 лет (вывести имя и год рождения). Если однофамильцев нет — сообщить об этом. В общем дан файл F например, заполненный, нужно занести его данные в структуру, помогите пожалуйста. https://www.cyberforum.ru/ cpp-beginners/ thread1668996.html<
0 / 0 / 0
Регистрация: 03.03.2014
Сообщений: 34
0

Динамическое выделение памяти под структуру (malloc) - C++ - Ответ 8793324

23.02.2016, 16:37. Показов 7162. Ответов 3
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Нашел данное решение на этом форуме, но никак не могу понять как оно работает.
Вот даны структуры:

C++
1
2
3
4
5
6
7
8
9
10
11
struct info // структура содержания информационного поля
{
    int *arrint; // массив чисел
    char arrchar[3]; // массив символов
};
 
struct list // структура списка 
{
    info elem; // информационная часть
    list *next; // ссылка следующий элемент   
};
Вот работа с ними:

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
int Add(list *pointer)
{
    int n, num;
    num = 0;
    cout << "Добавить элемент \n";
    cout << "Введите количество элементов в массиве чисел:";
    cin >> n;
    if (pointer == NULL)
    {
        cout << "Введите первый элемент списка\n";
        pointer = (list*)malloc(sizeof(list)+n*sizeof(int)); // выделение памяти под структуру
        pointer[num].elem.arrint = (int*)malloc(n*sizeof(int));
        cout << "Введите элементы массива:\n";
        DataInput(pointer,n);
    }
    return 0;
};
 
int DataInput(list *inputpointer, int m)     // Ввод массива чисел и символов
{
    char ch;
    int i, value;
    for (i = 0; i < m; i++) // ввод массива чисел
    {
        cout << "ArrInt[" << i << "]=";
        cin >> value;
        inputpointer->elem.arrint[i] = value;
    }
    cout << "Массив целых чисел введен. \n";
    for (i = 0; i < 3; i++)  // ввод трех символов
    {
        cout << "ArrChar[" << i << "]=";
        cin >> ch;
        inputpointer->elem.arrchar[i] = ch;
    }
    cout << "Массив символов введен. \n";
    return 0;
};
Вот в чем вопрос:
pointer = (list*)malloc(sizeof(list)+n*sizeof(int)); - что делает данная операция? для меня это выделение памяти под всю структуру и передача указателя первого байта памяти в pointer.
НО почему программа отказывается работать (вылетает при работе с исключением) без: pointer[num].elem.arrint = (int*)malloc(n*sizeof(int)); и что вообще делает эта команда, если вроде бы уже в первой всё сделано? почему перед указателем на элемент структуры нужно ставить [num]?

Вернуться к обсуждению:
Динамическое выделение памяти под структуру (malloc) C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2016, 16:37
Готовые ответы и решения:

Динамическое выделение памяти под структуру
#include &lt;iostream&gt; using namespace std; struct person { char*name; char *adres; int age; };...

Динамическое выделение памяти malloc()
Здравствуйте! Cкажите пожалуйста, как узнать каков максимальный объем памяти, который может...

Выделение памяти под структуру
enrollee *p=new enrollee; после работы delete p; выбивает ошибку. неправильно очищаю???

Выделение памяти под структуру
Наведите пример выделения памяти под структуру

3
23.02.2016, 16:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2016, 16:37
Помогаю со студенческими работами здесь

Выделение памяти под структуру
Доброго дня, товарисчи. В общем, возникла проблема при выделении памяти для структуры. Подскажите,...

Динамическое выделение памяти под объекты
Создать класс с именем TRAIN, содержащий следующие закрытые поля: • название пункта назначения;...

Динамическое выделение памяти под строки
Доброго времени суток. Изучаю основы C++, дошел до раздела &quot;указатели и динамическое выделение...

Динамическое выделение памяти под массив
Я хочу функцию использовать пару раз, количество команд будет уменьшаться, и &quot;n&quot; надо менять. Как...

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