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

Stack overflow при создании большого количества объектов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Упорядочение элементов структуры http://www.cyberforum.ru/cpp-beginners/thread213673.html
здравствуйте, имеется структура в которую вводиться 8 элементов по 3 пункта, после чего идёт поиск по второму пункту из списка нами записных элементов в данном случае NUM #include <stdio.h> #include <string.h> int main(){ struct TRAIN{char NAME;unsigned NUM;char TOUT;}B,T; int i,j,k=0; unsigned Num; char Name; for(i=0;i<8;i++) {printf("\nName of the place? "); gets(B.NAME); if(strlen(B...
C++ Сформировать текст, в строках котрого содержится по одному слову из текста Сформировать текст, в строках котрого содержится по одному слову из текста, а также номера строк, в которых встречается это слово. Текст предварительно вводиться с клавиатуры. Заранее благодарен за помощь. http://www.cyberforum.ru/cpp-beginners/thread213665.html
Перестановка в массиве C++
Дана целочисленная прямоугольная матрица. 1. Определить количество столбцов, не содержащих ни одного нулевого элемента 2. Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик. Помогите плз, завтра уже сдавать нужно Добавлено через 10 часов 0 минут кто знает? ...
циклы в графах C++
здравствуйте!, помогите пожалуйста с заданием, граф задется своей матрицей смежностей, вывести все простые циклы из каждой вершины. хотя бы обьясните суть, принцип нахождения этого т.е алгаритм
C++ Программа «Словарь». http://www.cyberforum.ru/cpp-beginners/thread213643.html
Программа «Словарь». Свойства: Название термина, описание. Функции: поиск термина по названию, отображение всех терминов на заданную букву в алфавитном порядке, добавление нового термина в словарь. Словарь содержится в текстовом файле. (пункт про поиск термина целим словом) в главной программе (int main) мой кусок кода работает... мне же( как в задании написано нужно сделать всё в...
C++ Опишите структуру с именем STUDENT Опишите структуру с именем STUDENT, содержащую следующие поля: - фамилия и инициалы; - номер группы; - успеваемость (массив из 5 элементов). Программа должна обеспечить выполнение следующих действий: 1) ввод с клавиатуры данных в массив, состоящий из 10 структур типа STUDENT; 2) вывод на экран монитора фамилий и номеров групп для всех студентов, ... подробнее

Показать сообщение отдельно
Дмитрий3.09
1 / 1 / 0
Регистрация: 17.12.2010
Сообщений: 12
18.12.2010, 00:52     Stack overflow при создании большого количества объектов
Здравствуйте Товарищи!
Выскакивает ошибка:"Необработанное исключение в "0x000000013fbc1ba7" в "Динамический массив (malloc).exe": 0xC00000FD: Stack overflow."
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <time.h>
using namespace std;
#define KOLVONS 65000 //количество объектов
class Mass
{
    float **mas;
    int m,n;
public:
    float **mass(int a,int c) //создание массива
    {
        mas=(float**)malloc(sizeof(float*)*a);
        for(int j=0;j<a;j++)
        {
            mas[j]=(float*)malloc(sizeof(float)*c);
        }
        for(int i=0;i<a;i++)
        {
            for(int j=0;j<c;j++)
            {
                mas[i][j]=0;
            }
        }
        m=a;n=c;
        return mas;
    } 
    void SetMass() //Установка элементов динамического массива в случайное значение
    {
        srand(clock());
        for(int i=0;i<m;i++)
        {
            for(int j=0;j<n;j++)
            {
                double g=(rand()%10000);
                mas[i][j]=(g/10000)*2;
            }
        }
    }
    void GetMass() //Вывод результатов работы проги для её контроля
    {
        for(int i=0;i<m;i++)
        {
            for(int j=0;j<n;j++)
            {
            cout<<mas[i][j]<<" ";
            }
            cout<<"\n";
        }
        cout<<"\n"<<"\n"<<endl;
    }
    void DelMass() //удаление динамического массива
    {
        for(int i=0;i<m;i++)
        {
            free(mas[i]);
        }
        free(mas);
    }
};
void _tmain()
{
    clock_t time;
    time = clock();
    Mass s[KOLVONS];
    int a=100,c=100;
    for(int p=0; p<KOLVONS;p++)
    {
        s[p].mass(a,c);
    }
    for(int p=0; p<KOLVONS;p++)
    {
        s[p].SetMass();
    }
    for(int p=0; p<KOLVONS;p++)
    {
        s[p].DelMass();
    }
    time=clock()-time;
    cout<<(double)time/CLOCKS_PER_SEC;
    _getch();
}
Дело не в свободной памяти, это точно. Стоит 6 ГБ и еще 12 в файле подкачки и при этом 65000х10000х4=2.6 ГБ памяти нужно.
Кодирую в VS2010. Эта ошибка выскакивает, когда компилирую в среде х64. А когда в itanium - нарушение прав доступа при инициализации массива нулями...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru