57 / 9 / 4
Регистрация: 14.06.2013
Сообщений: 129
1

Realloc выделяет память для массива int и не выделяет память для массива double

07.02.2016, 19:30. Показов 1397. Ответов 1
Метки нет (Все метки)

Скажите пожалуйста, почему вот этот код работает:

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
#include <iostream>
#include <windows.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    int n=5;
    int *mas = new int[1];
 
    for(int i=1; i<=n; i++)
    {
        realloc(mas,i*sizeof(int));     //изменяем размер массива mas на i*sizeof(int)
        cout << "Размер массива изменен:\n";
        for(int j =0; j<i; j++)
        {
        mas[j] = j;
        cout << mas[j] << endl;
        }
        cout << endl;
    }
 
    return 0;
}
А вот этот, который отличается заменой типа массива на double, не работает???:
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
#include <iostream>
#include <windows.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    int n=5;
    double *mas = new double[1];
 
    for(int i=1; i<=n; i++)
    {
        realloc(mas,i*sizeof(double));     //изменяем размер массива mas на i*sizeof(double)
        cout << "Размер массива изменен:\n";
        for(int j =0; j<i; j++)
        {
        mas[j] = j;
        cout << mas[j] << endl;
        }
        cout << endl;
    }
 
    return 0;
}
Миниатюры
Realloc выделяет память для массива int и не выделяет память для массива double  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2016, 19:30
Ответы с готовыми решениями:

Программа, которая считывает количество товаров и выделяет память для сохранения их цен
6. Напишите программу, которая считывает количество товаров и выделяет память для сохранения их...

Как malloc выделяет память?
Почему, если я выделяю память для одного int, вот так int *myArray = (int *)malloc(sizeof(int));...

Действительно ли new выделяет память в куче (heap)?
Чаще всего пишут что в куче . Ок . Куча процесса это вроде бы блок вполне конкретного размера . Я...

Организовать функцию, которая выделяет память под строку
1) Организовать функцию, которая выделяет память под строку. Размер памяти передается через...

1
2641 / 2218 / 238
Регистрация: 03.07.2012
Сообщений: 8,047
Записей в блоге: 1
07.02.2016, 20:22 2
Не надо смешивать разные механизмы распределения памяти.
Напиши
C++
1
   double *mas = (double*)malloc(sizeof(double));
И после realloc mas надо присвоить заново:
C++
1
     mas=(double*)realloc(mas,i*sizeof(double));     //изменяем размер массива mas на i*sizeof(double)
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2016, 20:22
Помогаю со студенческими работами здесь

Как операционная система выделяет виртуальную память процессу?
Добрый вечер, хотел уточнить насчёт адресации: создаётся экземпляр win32 программы, выделяет...

Написать программу, которая вводит целое число n и выделяет память
3. Написать программу, которая вводит целое число n и выделяет память для массива из n данных типа:...

Ввести с клавиатуры массив, распределить память для его размещения и ввести int значения этого массива
Подскажите пожалуйста. Задача такая : ввести с клавиатуры n элементов массива, распределить память...

Выделить память для трехмерного массива и изменить индексы начального элемента массива
Выделить память для трехмерного массива а. Изменить индексы начального элемента массива на ....


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

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

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