Форум программистов, компьютерный форум 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. Оценить математическое ожидание полученной...
C++ Вычисление по формуле Вычислить значение формулы, вот код: #include <iostream> #include <Windows.h> #include <math.h> using namespace std; void main() { подробнее

Показать сообщение отдельно
4classic4
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 21

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

02.03.2014, 01:32. Просмотров 605. Ответов 6
Метки (Все метки)

Добрый вечер! У меня следующий вопрос: ниже представленный код выдает ошибку, как-бы нет доступа к памяти, IDE вижел 2011, главная суть программы, постепенно увеличивать размерность двухмерного массива, пока, пока его объем не станет больше размера кэш 1-го уровня процессора - когда станет больше, и в этот момент мы выходим из цикла и из расчетов размера массива - определяем объем кэш 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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <Windows.h>
#include <stdlib.h>
using namespace std;
int main () {   
    int **array1;
    unsigned int start, stop, time1, time2, i=1;
    
        array1=(int**)malloc(i*sizeof(int));
        for(unsigned int j=0; j<i; j++)
            array1[j]=(int*)malloc(i*sizeof(int));
        do
    {   
        unsigned int mul;
        i++;
        cout<<"bukva i="<<i<<"\n";
        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;
        
        start=GetTickCount();
            for(int k=0; k<10000; k++)
                mul=array1[0][0]*array1[i-1][i-1];
        stop=GetTickCount();
        cout<<"raznost = "<</*stop<<'-'<<start<<*/'='<<(stop-start)<<'\n';
        if(i%2==0){
            time1=stop-start;
            if(i==2) time2=time1;
        }
        else{
            time2=stop-start;
        }
 
    }
        while(!(time2-time1));
        cout<<'\n'<<(time2-time1)<<'\n'<<(i*i*4/1024)<<" kb";
        system("pause");
        return 0;
}
Добавлено через 1 час 19 минут
Ошибка:
Первый этап обработки исключения по адресу 0x012C891F в Проект1.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0x00000006.
Необработанное исключение по адресу 0x012C891F в Проект1.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0x00000006.
Программа "[12936] Проект1.exe" завершилась с кодом 0 (0x0).
Я правильно использовал функции realloc(), malloc()?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru