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

почему вылетает из программы? - C++

Восстановить пароль Регистрация
 
pianeer
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 31
19.01.2011, 21:00     почему вылетает из программы? #1
почему вылетает из программы во время рассчета длины массива?
всю голову слома, не могу найти ошибку
помогите пожалуйста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//файл laba.h
#ifndef LABA_H
#define LABA_H
class laba
{
public:
laba();
~laba();
void input();
void output();
void dlina();
void sqr();
private:
int *mas;
int *bPtr;
};
#endif
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/файл main.cpp
#include <iostream.h>
#include <math.h>
#include "laba.h"
main()
{
laba *a= new laba;
cout<<"vvedite elementy massiva - "<<endl;
a->input();
a->output();
a->sqr();
delete a;
system("PAUSE");
return 0;
}
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
26
//файл laba.cpp
#include <iostream.h>
#include <math.h>
#include "laba.h"
laba::laba(){mas= new int[5]; bPtr=&mas[0];};
void laba::input()
{
for(int i=0;i<10;i++){
cout<<"vvesty "<<i+1<<" element"<<endl;
cin>>mas[i];}
}
void laba:: output()
{
for(int i=0;i<10;i++){
cout<<" mas["<<i+1<<"]="<<mas[i];}
cout<<endl;
}
void laba:: sqr(){
int l;
for(int i=0;i<10;i++){
int w= mas[i]; int q= mas[i];
int r=w*q;
l=l+r;}
double n=sqrt(l);
cout<<"dlina"<<n;}
laba::~laba(){delete mas;}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2011, 21:00     почему вылетает из программы?
Посмотрите здесь:

C++ При запуске вылетает,а почему?
C++ Почему вылетает эксепшн?
C++ Почему вылетает
C++ непонятно почему вылетает
C++ Почему программа вылетает
Почему при вводе данных вылетает ошибка C++
Программа на С++ вылетает, не могу понять почему!? C++
Строка (почему вылетает программа?) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1331 / 864 / 50
Регистрация: 02.01.2009
Сообщений: 2,622
Записей в блоге: 1
19.01.2011, 21:03     почему вылетает из программы? #2
Выход за границы массива...
C++
1
2
3
4
mas= new int[5];
...
for(int i=0;i<10;i++)
 ..mas[i]..
NiRamz
209 / 209 / 16
Регистрация: 26.12.2010
Сообщений: 691
19.01.2011, 21:19     почему вылетает из программы? #3
что бы подобного не возникало, пользуйтесь константами ..
что то типо
C++
1
2
3
4
5
const int M=10;
mas= new int[M];
...
for (int i=0; i<M; i++)
{...}
или по другому
C++
1
2
3
4
mas = new int[10];
 
for(int i=0; i< sizeof(mas)/sizeof(mas[0]); i++)
{...}
второй вариант я считаю предпочтительней, так можно избежать подобных ошибок, которые могут быть просто из-за невнимательности ...))
Yandex
Объявления
19.01.2011, 21:19     почему вылетает из программы?
Ответ Создать тему
Опции темы

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