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

Динамические массивы и кэш процессора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сформировать матрицу с помощью генератора случайных чисел и организовать ее вывод http://www.cyberforum.ru/cpp-beginners/thread1108757.html
Составить программу для подсчета произведения нечетных элементов двумерной матрицы В размерности m × n. Сформировать матрицу с помощью генератора случайных чисел и организовать ее вывод.
C++ Пиксель экрана а можно написать код, который смог бы сделать так, чтобы определенный пиксель экрана был, скажем, зеленого цвета? идеи сделать его битым не принимаются :) http://www.cyberforum.ru/cpp-beginners/thread1108756.html
Сортировка массива C++
Расставить строки массива в порядке убывания сумм их элементов. Я беру двумерный массив, потом записываю в отдельный одномерный массив суммы элементов строк. Элемент получившегося массива - есть сумма строки исходного, а индексы равны между собой. Дальше ищу максимальный элемент в одномерном, сохраняю его и индекс, в исходном в цикле сравниваю циклическую переменную с индексом и в зависимости...
Изменение приоритета математических операций C++
Здравствуйте, по заданию в лабораторной, нужно написать программу которая будет вычислять значение математического выражения с заданным приоритетом операций(приоритет каждой операции задаётся пользователем), у меня возник такой вопрос можно ли изменить приоритет системно, чтобы выражение можно было задать как функцию? (а не как я сделал когда выражение хранится в массиве и его значение вычисляет...
C++ Используя метод вычетов, сгенерировать последовательность из 1000 псевдослучайных чисел http://www.cyberforum.ru/cpp-beginners/thread1108735.html
Вообщем есть задание. 1. Используя метод вычетов, сгенерировать последовательность из 1000 псевдослучайных чисел, результат вывести на экран. 1.1. Оценить математическое ожидание полученной последовательности, математическое ожидание и выборочное среднее вывести на экран. 1.2. Оценить дисперсию полученной последовательности, дисперсию и выборочную дисперсию вывести на экран. 1.3....
C++ Вычисление по формуле Вычислить значение формулы, вот код: #include <iostream> #include <Windows.h> #include <math.h> using namespace std; void main() { подробнее

Показать сообщение отдельно
Alex5
1030 / 693 / 102
Регистрация: 12.04.2010
Сообщений: 1,750
02.03.2014, 14:21     Динамические массивы и кэш процессора
Цитата Сообщение от 4classic4 Посмотреть сообщение
Вот в этом блоке кода:
array1=(int**)realloc(array1,i*sizeof(int));
for(unsigned int j=0; j<i; j++)
array1[j]=(int*)realloc(array1,i*sizeof(int));
for(unsigned int j=0; j<i; j++)
for(unsigned int k=0; k<i; k++)
array1[j][k]=2;
Если calloc - то все нормально, но как realloc - ошибка доступа...
C++
1
2
3
4
5
6
/*Если несколько раз подряд вызвать realloc с одними и теми же параметрами, 
то возвращаемое значение будет одно и то же. 
(Зачем перераспределять память, если ни объект, ни его размер не изменились?)*/
 realloc(array1,i*sizeof(int));
 realloc(array1,i*sizeof(int));
 realloc(array1,i*sizeof(int));
Цитата Сообщение от 4classic4 Посмотреть сообщение
C++
1
2
3
 array1=(int**)realloc(array1,i*sizeof(int));
 for(unsigned int j=0; j<i; j++)
     array1[j]=(int*)realloc(array1,i*sizeof(int));
Результат: все указатели array1, array1[0], array1[1] имеют одинаковое значение.
То есть, array1 == *array1, *array1 == **array1, ...

Цитата Сообщение от 4classic4 Посмотреть сообщение
C++
1
2
3
 for(unsigned int j=0; j<i; j++)
     for(unsigned int k=0; k<i; k++)
         array1[j][k]=2;
Здесь array1[0][0] = 2 означает **array1 = 2.
Теперь и array1[0] становится равным 2 ( потому что, *array1 == **array1 ).

array1[0][1] = 2, то есть *(array1[0] + 1*4) = 2, тут пытаемся выполнить операцию *(2+4) = 2
и получаем: Нарушение прав доступа при записи "0x00000006".
 
Текущее время: 14:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru