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

Нарушение прав доступа в многомерном массиве - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти бОльшую из цифр числа http://www.cyberforum.ru/cpp-beginners/thread1002934.html
Датчиков случайный чисел задать число в промежутке от 100 до 900. Найти бОльшую из цифр числа. Есть вариант находить остатки от деления и сравнивать их. Но должен быть способ сделать это более эффективно. Но как?
C++ Объясните мне Объясните мне, пожалуйста, зачем нужна функция print и как она работает? http://www.cyberforum.ru/cpp-beginners/thread1002932.html
Бинарный поиск C++
Написал программу бинарного поиска элемента v. Не могу понять в чем ошибка, не считает количество элементов массива удовлетворяющий значению искомого элемента. #include <iostream> using namespace std; int Binary_Search(int* A,int v); int Search(int* A,int p,int r,int v); int n,v; int main() { cout<<"Enter search elements: "; cin>>v;
STL map C++
Вопрос:как мне узнать что не создавался map с заданым str? #include <iostream> #inlclude <map> #include <string> using namespace std; int main() { map <string,int> m; int k; string str;
C++ Вывод сверхбольших чисел http://www.cyberforum.ru/cpp-beginners/thread1002916.html
Доброго времени суток. Суть такова, что необходимо выводить на экран сверхбольшие числа. Свыше 2^64. Есть ли какие способы сделать это максимально просто? Или каким-либо образом создавать свой класс и придумывать что-нибудь эдакое? Причем вывод не в экспоненциальной форме
C++ Ошибка "Не удается найти указанный файл" Здравствуйте,помогите разобраться пожалуйста,я запускаю программу , но выдается ошибка :"не удается найти указанный файл " , заголовочный файл ""stdafx.h"" подключила , но все равно выдает ошибку(( подробнее

Показать сообщение отдельно
nokados
27 / 27 / 5
Регистрация: 30.04.2012
Сообщений: 132
09.11.2013, 22:38     Нарушение прав доступа в многомерном массиве
Написал функцию, которая находит в массиве элемент, который встречается в нем чаще остальных. Вот код:
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
int frequent(int**arr,int nRows, int nCols)
{
    int l=0,n;
    int max=0,maxI=0;
 
    int** frequency = (int**)new int[nRows*nCols][2];
    
    for (int i=0; i<nRows; i++)
        for (int j=0; j<nCols; j++)
        {
            n=-1;
            for (int k=0;k<l;k++)
                if (frequency[k][0]==arr[i][j])
                {
                    n=k;
                    break;
                }
            if (n==-1)
            {
                n=l;
                frequency[l][0]=arr[i][j];
                frequency[l][1]=1;
                l++;
            }
            else
            {
                frequency[n][0]++;
            }
            if(frequency[n][1]>max)
            {
                maxI=frequency[n][0];
                max=frequency[n][1];
            }
        }
    return maxI;
}
здесь
  • arr - массив по которому осуществляется поиск
  • frequency - массив в котором хранится количество элемента в массиве. в frequency[i][0] хранится число из arr, а в frequency[i][1] сколько раз frequency[i][0] встречается в arr.
  • l - длина frequency
остальное должно быть понятно.

на строчке
C++
1
frequency[l][0]=arr[i][j];
вылетает с ошибкой:Необработанное исключение в "0x00c846cb" в "tests.exe": 0xC0000005: Нарушение прав доступа при записи "0xcdcdcdcd".

Microsoft Visual Studio 2010 Ultimate
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru