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

Поиск:

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


Новичок



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

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



Код

int _tmain(int argc, _TCHAR* argv[])
{    


    
    int k=0;
    int array[20];
    int col=20;
    
    while(k<col)
    {
        array[k]=rand()%100;
        k++;
    }
    int trash=0; 


    for (int i=0; i<=col ; i++)
    {
        for (int j=0; j<=col-i; j++) 
            {
            if (array [j]>array [j+1]) 
            {

                trash=array[j]; 
                array [j]=array [j+1];
                array [j+1]=trash;
                }
        }
    }
    k=0;
    while(k<col){
    cout<<array[k]<<endl;
    k++;
    }

    
}

не пойму почему ругается
Run-Time Check Failure #2 - Stack around the variable 'array' was corrupted.
в борланде все норм а встудии такая фигня
PM MAIL   Вверх
creatorcode
Дата 14.5.2008, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

for (int i=0; i<=col ; i++)
    {
        for (int j=0; j<=col-i; j++)

Из-за того, что неравенства не строгие, ты портишь область памяти, не принадлежащую array. 

Это сообщение отредактировал(а) creatorcode - 14.5.2008, 01:04
PM MAIL   Вверх
vid0k
Дата 14.5.2008, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



щас попробовал со строггими все равно вылетает
PM MAIL   Вверх
creatorcode
Дата 14.5.2008, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Надо еще вычесть 1 из col во втором цикле.
 
Код

 for (int i=0; i<=col ; i++)
    {
        for (int j=0; j<col-i-1; j++)

Это работает. smile 

Это сообщение отредактировал(а) creatorcode - 14.5.2008, 01:15
PM MAIL   Вверх
vid0k
Дата 14.5.2008, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

for (int i=1; i<col ; i++)
    {
        for (int j=1; j<col-i; j++)

у мяня заработал вот такой код но здесь проверка идет не снулевого елемента те с первого
а c array[1]

Это сообщение отредактировал(а) vid0k - 14.5.2008, 01:21
PM MAIL   Вверх
creatorcode
Дата 14.5.2008, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Это пузырьковая сортировка?
Я когда-то реализовывал её так:
Код

 for (int i=col-1; i>0 ; i--)
    {
        for (int j=0; j<i; j++) 
            {
            if (array [j]>array [j+1]) 
            {
                trash=array[j]; 
                array [j]=array [j+1];
                array [j+1]=trash;
                }
        }
    }

PM MAIL   Вверх
vid0k
Дата 14.5.2008, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спасибо за ответ

Добавлено через 4 минуты и 53 секунды
и еще вопрос я создаю объект класса CTime (MFC)
замеряю время в милисекундах с помощью GetTickCount();
время начала и время конца но не могу получить разницу пишет
 error C2679: binary '=' : no operator found which takes a right-hand operand of type 'ATL::CTimeSpan' (or there is no acceptable conversion)
PM MAIL   Вверх
MAKCim
Дата 14.5.2008, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 2
Всего: 207



vid0k, 
учи английский
все написано


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Annihilator
Дата 14.5.2008, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

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



Цитата(vid0k @  14.5.2008,  05:30 Найти цитируемый пост)
и еще вопрос я создаю объект класса CTime (MFC)
замеряю время в милисекундах с помощью GetTickCount();
время начала и время конца но не могу получить разницу пишет
 error C2679: binary '=' : no operator found which takes a right-hand operand of type 'ATL::CTimeSpan' (or there is no acceptable conversion) 

код хотя бы приведи


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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