Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переполнение стека??? 
V
    Опции темы
iPlay
Дата 9.2.2011, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 23.9.2007

Репутация: нет
Всего: 1



Происходит переполнение стека, неясно почему???
Код

#define SIZE 200000
#define SIZECYCL 199999
#define DEVIATION 256    

int main(int argc, char* argv[])
{    
start:
    int pMap[SIZE];
    int randomVal[SIZE];
    int val = 0;
    int one = 1;
    int zero = 0;
    LARGE_INTEGER start, finish, freq;
    QueryPerformanceFrequency( &freq );

    srand(time(0));

    printf("-------------------------------\n");
    printf("must be less than 256"); printf("\n");
    printf("value = ");
    scanf("%d", &val);
    
    QueryPerformanceCounter( &start );    
//    int start = GetTickCount();

    for (long i = 0; i<=SIZECYCL; i++)
    {    
        //Sleep(1);
        randomVal[i] = rand() % DEVIATION;
        //printf("random value");
        //printf("%d",randomVal[i]);
        //printf("\n");
            if (val > randomVal[i])
            {
                pMap[i] = one;
                //printf("pMap["); printf("%d",i); printf("]=");            
                //printf("%d",pMap[i]);
            }
            else 
            {
                pMap[i] = zero;
                //printf("pMap["); printf("%d",i); printf("]=");    
                //printf("%d",pMap[i]);
            }
    }
    
    QueryPerformanceCounter( &finish );
    double time = (finish.QuadPart - start.QuadPart) / (double)freq.QuadPart;
    printf("\n%f", time); printf(" seconds");

    //int deadline = GetTickCount() - start;
    //printf ("\ntime=%d msec", deadline);
    
    long count = 0;
    //printf("\n\npMap = ");    
    for (long j = 0; j<=SIZECYCL; j++)
    {
        //printf("%d",pMap[j]);
        if ( pMap[j] == 1) 
        {
            count++;
        }
    }
    double p2tmp = (double)count/SIZE;
    double p2value = p2tmp * DEVIATION;
    printf("\n\nvalue was = ");
    printf("%f",p2value);
    printf("\n");
    return 0;
}



Добавлено через 7 минут и 10 секунд
При 
Код

#define SIZE 100000


работает на ура, но нужно 200 000  smile 
PM MAIL   Вверх
586
Дата 9.2.2011, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 10
Всего: 146



Цитата(iPlay @  9.2.2011,  22:49 Найти цитируемый пост)
работает на ура, но нужно 200 000   smile 

Выделяй через new.
PM   Вверх
iPlay
Дата 9.2.2011, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 23.9.2007

Репутация: нет
Всего: 1



Сейчас попробую.

Добавлено через 2 минуты и 47 секунд
Да, работает спасибо!

Добавлено через 3 минуты и 24 секунды
Интересно только почему именно так происходило?

Это сообщение отредактировал(а) iPlay - 9.2.2011, 23:35
PM MAIL   Вверх
586
Дата 9.2.2011, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 10
Всего: 146



Цитата(iPlay @  9.2.2011,  23:34 Найти цитируемый пост)
Интересно только почему именно так происходило?

Размер стека ограничен. Настраивается в настройках компилятора.

Это сообщение отредактировал(а) 586 - 10.2.2011, 06:43
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0868 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.