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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
LEO713
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 5
#1

Масивы С/С++ - C++

20.10.2009, 02:58. Просмотров 947. Ответов 13
Метки нет (Все метки)

Подскажите пожалуйста, как в С создать массив А[1000][1000], при этом что бы выполнялась программа без ошибок. Потому что компиляция происходит отлично, но сама программа выдает ошибку, при меньшем массиве - например А[100][100] - все отлично. Спасибо за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2009, 02:58     Масивы С/С++
Посмотрите здесь:

C++ Динамические масивы
C++ C++ масивы
C++ Масивы
C++ 2-D масивы.
Масивы C++
Масивы C++
C++ Масивы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RyslanM
4 / 4 / 1
Регистрация: 06.10.2009
Сообщений: 37
20.10.2009, 03:19     Масивы С/С++ #2
Я конечно не специалист, но может просто массив за большой?
LEO713
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 5
20.10.2009, 03:56  [ТС]     Масивы С/С++ #3
Это условие задания, должен поддерживаться 1000*1000. Как реализовать такую возможность?
RyslanM
4 / 4 / 1
Регистрация: 06.10.2009
Сообщений: 37
20.10.2009, 04:08     Масивы С/С++ #4
Порылся по Другим форумам нашел везде Одно и тоже решения
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
#include "stdafx.h"
#include <conio.h>
#include <iostream>
 
using namespace std;
 
int main()
{
    int max_size=1000;
    int** myArr=new int*[max_size];
    for(int i=0;i<max_size;i++)
        myArr[i]=new int[max_size];
    for(int i=0;i<max_size;i++)
        for(int j=0;j<max_size;j++)
            myArr[i][j]=i+j;
    for(int i=0;i<max_size;i++)
    {
        for(int j=0;j<max_size;j++)
            if(i>990)cout<<myArr[i][j]<<" ";
        cout<<"\n";
    }
    getch();
    delete [] myArr;
    return 0;
}
LEO713
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 5
20.10.2009, 15:50  [ТС]     Масивы С/С++ #5
Спасибо за помощь, попробую что-то из этого придумать
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
20.10.2009, 16:06     Масивы С/С++ #6
увеличить размер стека программы.
конкретные опции искать в справочном руководстве к используемому компилятору
Ketino
8 / 8 / 0
Регистрация: 21.09.2009
Сообщений: 84
20.10.2009, 18:53     Масивы С/С++ #7
Можно попутный вопрос?
Нас на лекциях по Паскалю учили, что сегмент данных - 65 килобайт.
Каким образом на С++ удаётся нормально запускать такие проги, как приведена ниже?
Или сегменты данных "умерли" вместе с Паскалем?
Спасибо.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
using namespace std;
 
  int a[10000][10000]={0};
 
int main(void)
{
  a[9999][9999]=9999;
  cout<<"+"<<sizeof(a)<<"+"<<a[9999][9999] ;
}
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
21.10.2009, 00:10     Масивы С/С++ #8
Ketino,
Или сегменты данных "умерли" вместе с Паскалем?
сегменты (любые) умерли вместе с 16-разрядными операционными системами (MS-DOS, Windows 3.x, OS/2 1.x)
Chea
6 / 6 / 0
Регистрация: 29.09.2009
Сообщений: 41
21.10.2009, 13:57     Масивы С/С++ #9
Вообще то сегментация памяти вытекала из архитектуры процессора а не из операционной системы
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
21.10.2009, 14:02     Масивы С/С++ #10
Chea,
Вообще то сегментация памяти вытекала из архитектуры процессора а не из операционной системы
А где-то утверждалось обратное?
Chea
6 / 6 / 0
Регистрация: 29.09.2009
Сообщений: 41
21.10.2009, 14:09     Масивы С/С++ #11
Цитата Сообщение от Rififi Посмотреть сообщение
Ketino,
Или сегменты данных "умерли" вместе с Паскалем?
сегменты (любые) умерли вместе с 16-разрядными операционными системами (MS-DOS, Windows 3.x, OS/2 1.x)
---
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
21.10.2009, 14:13     Масивы С/С++ #12
Очень интересная логика увязывания одного за другое. Ты не женщина там, часом?
Chea
6 / 6 / 0
Регистрация: 29.09.2009
Сообщений: 41
21.10.2009, 14:32     Масивы С/С++ #13
А ты???

Разрядность операционной системы не влияет на наличие мех-ма сегментации памяти
В твоем ответе все зависит от разрядности ОС.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2009, 15:56     Масивы С/С++
Еще ссылки по теме:

С++ Масивы C++
C++ масивы
Двомерные масивы C++
C++ Указатели и масивы
Функции и масивы C++

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
21.10.2009, 15:56     Масивы С/С++ #14
Я думаю если не важно быстродействие то можно вбить элементы массива в файл а потом из него читать. При этом даже отпадёт надобность в самом массиве, просто забить функцию аля int getelement(int i, int j) - возвращаемым значением которой будет элемент массива с соотв индексами, сам элемент будет считываться из файла. С модификацией элемента по сложнее, тут прийдётся создавать два временных файла - 1-й с элементами до модифицуремого элемента, 2 - й с элементами поле него, а затем перезаписывать исходный файл данными из этих файлов + между ними модифицтрованный элемент.......(это лишь мой взгляд на проблему)
Yandex
Объявления
21.10.2009, 15:56     Масивы С/С++
Ответ Создать тему
Опции темы

Текущее время: 09:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru