Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2013, 03:47   #11
Skrypnyk
Новичок
Джуниор
 
Регистрация: 12.01.2013
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ну да, в адресном пространстве в 2Гб он создал массив более этого размера.

malloc(в С++ new) и указатели так или иначе связаны.
или они, или глобальная переменная.
Иными словами нельзя создать такой большой массив, как [100][100][100] и никакие снятия ограничений не помогут?
Skrypnyk вне форума Ответить с цитированием
Старый 13.01.2013, 10:35   #12
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Можно - увеличьте размера стека программы через опции линкера.
Но лучше этого не делайте. Вам уже порекомендовали не создавать больших объектов локальными переменными.
waleri вне форума Ответить с цитированием
Старый 13.01.2013, 14:32   #13
Skrypnyk
Новичок
Джуниор
 
Регистрация: 12.01.2013
Сообщений: 14
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Можно - увеличьте размера стека программы через опции линкера.
Но лучше этого не делайте. Вам уже порекомендовали не создавать больших объектов локальными переменными.
Вот, спасибо, увеличить размер стека через опции линкера - уже яснее. Я в итоге буду использовать указатели, но хотелось бы разобраться сначала как работать с большими массивами. Я использую Code::Bloks 10.05. Вычитал, что изменить размер стека можно здесь: project->build options->linker settings->other linker options. Но что прописывать в 'other linker options' понятия не имею.
Skrypnyk вне форума Ответить с цитированием
Старый 13.01.2013, 14:44   #14
Skrypnyk
Новичок
Джуниор
 
Регистрация: 12.01.2013
Сообщений: 14
По умолчанию

Проясните для меня, пожалуйста, пару моментов:
1. Если я выношу объявление массива за пределы функции main, то я выделяю место в статической памяти?
2. Почему у меня такой странный вывод данных здесь?
Код:
#include <iostream>

using std::cout;
using std::endl;

struct Atom
{
    float x, y, z; // coordinates of the atoms
};

typedef struct Atom AtomType;

int main ()
{
    AtomType FccLattice[10][10][10]; // create a 3 dimensional array to fill the space with atoms of the FCC lattice
    
    int i, j, k;

    for (i=0; i<10; i++)
    {
        for (j=0; j<10; j++)
        {
            for (k=0; k<10; k++)
            {
                FccLattice[i][j][k].x=i;
                FccLattice[i][j][k].y=j;
                FccLattice[i][j][k].z=k;
            }
        }
    cout << FccLattice[i][j][k].x << FccLattice[i][j][k].y << FccLattice[i][j][k].z << endl;
    }

    return 0;
}
Если ставлю объявление массива AtomType FccLattice[10][10][10]; вне функции main все равно выводит значения, отличные от предполагаемых.
Skrypnyk вне форума Ответить с цитированием
Старый 13.01.2013, 15:54   #15
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Skrypnyk Посмотреть сообщение
Проясните для меня, пожалуйста, пару моментов:
1. Если я выношу объявление массива за пределы функции main, то я выделяю место в статической памяти?
2. Почему у меня такой странный вывод данных здесь?
1. Да.
2. Телепаты в отпуске

(у тебя там выход за пределы диапазона массивов: http://liveworkspace.org/code/LBjoA$3 )

Последний раз редактировалось _Bers; 13.01.2013 в 16:03.
_Bers вне форума Ответить с цитированием
Старый 14.01.2013, 01:51   #16
Skrypnyk
Новичок
Джуниор
 
Регистрация: 12.01.2013
Сообщений: 14
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
(у тебя там выход за пределы диапазона массивов: http://liveworkspace.org/code/LBjoA$3 )
Спасибо Вам.
Skrypnyk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Microsoft SQL: создание ограничений для ячейки Борцуха Помощь студентам 1 13.12.2012 07:51
добавление ограничений по множественным условия выбора значений algeka Microsoft Office Excel 0 31.03.2011 14:55
Word 2010, VBA, изменение форм ворда или накладывание ограничений simplecs Microsoft Office Word 4 25.01.2011 11:45
Проблема с вводом ограничений в Solver kovalevskivf Microsoft Office Excel 0 12.11.2009 23:41
Задача - через Поиск решения и Прописывания ограничений Angelholy Microsoft Office Excel 3 22.03.2009 13:08