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

Stack around the variable 'b' was corrupted - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 5.00
fantaz1
 Аватар для fantaz1
33 / 25 / 1
Регистрация: 08.11.2008
Сообщений: 107
11.01.2011, 19:56     Stack around the variable 'b' was corrupted #1
Помогите разобраться почему вот эта программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main()
{
    short b,k=0;
    float a,s=0;
    FILE* inf = fopen("input.txt","r");
    FILE* outf = fopen("output.txt","w");
    fscanf(inf,"%d",&b);
    while(b-->0)
    {
        fscanf(inf,"%f",&a);
        if(a<0)
        {
            s+=a;k++;
        }
    }
    fprintf(outf,"%d %.2f\n",k,s);
}
Не хочет работать вместе с типом short? При выполнении выдает ошибку "Run-Time Check Failure #2 - Stack around the variable 'b' was corrupted.".
Заменю short на int все нормально.
Просто интересно почему же так?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2011, 19:56     Stack around the variable 'b' was corrupted
Посмотрите здесь:

stack around the variable was corrupted C++
C++ Бинарные файлы и Stack around the variable was corrupted
Stack around the variable 's' was corrupted C++
C++ Stack around the variable was corrupted
C++ Stack around the variable 'cif' was corrupted
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cibertronic
 Аватар для cibertronic
255 / 142 / 13
Регистрация: 27.12.2009
Сообщений: 893
11.01.2011, 20:08     Stack around the variable 'b' was corrupted #2
потому что функция fscanf() для данного типа не подходит, scanf используй

Добавлено через 1 минуту
а еще лучше использовать cin<<b;
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
11.01.2011, 22:55     Stack around the variable 'b' was corrupted #3
Потому что для short формат %hd.
Цитата Сообщение от cibertronic Посмотреть сообщение
потому что функция fscanf() для данного типа не подходит, scanf используй
Чего?
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
11.01.2011, 23:02     Stack around the variable 'b' was corrupted #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
cibertronic, Что за бред Вы несете ?
Yandex
Объявления
11.01.2011, 23:02     Stack around the variable 'b' was corrupted
Ответ Создать тему
Опции темы

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