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

Ошибка приложения - C++

Восстановить пароль Регистрация
 
Slashdot
Сообщений: n/a
08.10.2013, 12:47     Ошибка приложения #1
У меня возникла следующая проблема: написание и компиляция программы выдаёт ошибку обращения к памяти.
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream>
#include<windows.h>
#include <conio.h>
using namespace std;
char bufRus[256];
char* Rus(const char* text) 
{
      CharToOem(text, bufRus);
      return bufRus;
} 
int main()
{  
    int i, j, n, k, temp, ch;
    int mas[n], mas2[n]; 
    cout<<Rus("Введит количество элементов в массиве:"); cin>>n;
    cout<<Rus("Введит элементы массива:\n");
    for(i=0; i<n; i++)
    {
         cin>>mas[i];
    }
    cout<<Rus("Желаите ли ввести повторно массив(1 да 0 нет):");
    cin>>k;
    if (k==1)
    {
             for(i=0; i<n; i++)
             {
                   cin>>mas2[i];
             }
    }
    else 
    {
             for(i=0; i<n; i++)
             {
                   mas2[i]=mas[i];
             }
    }
    for (i=0; i<n; i++)
    {
        temp=mas[i];
        int val=rand()%n;
        mas[i]=mas[val];
        mas[val]=temp;        
    }
    cout<<Rus("Что выбираем: 1)позиция элемента в массиве; 2)сам элемент массива.:");  
    cin>>k;
    if (k==1)
    {
        cout<<Rus("Выберете позицию элемента в перемешаном массиве:");
        cin>>ch;
        mas[ch]=' ';
    }
    else
    {
        cout<<Rus("Выберете сам элемент массива:");   
        cin>>ch;
        for (i=0; i<n; i++){if (mas[i]==ch) mas[i]=' ';}     
    }   
    cout<<Rus("Массив №1(перемешаный с изъятым элементом):\n");
    for (i=0; i<n; i++){cout<<mas[i]<<" ";}
    cout<<Rus("\nМассив №2(исходный):\n");
    for (i=0; i<n; i++){cout<<mas2[i]<<" ";}
    for (j=0; j<n; j++)  
    {
        for (i=0; i<n; i++)
        {
            if (mas[j]==mas2[i]){mas2[i]=' ';}            
        }
    }
    for (i=0; i<n; i++)
    {
        if (mas2[i]!=' ')
        {
            cout<<"\nВыбранный элемент массива:"<<mas2[i];
        }
    }
    getch();   
    return 0;
}
Добавлено через 49 минут
Точнее не ошибка обращения к памяти, а:
Исключение unknown software exception(0xc00000fd) в приложении по адресу 0x0040d473
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2013, 12:47     Ошибка приложения
Посмотрите здесь:

C++ ошибка: ... vcl60.bpl не был найден - при запуске приложения, если Builder не установлен
Графиические приложения C++
C++ Запуск приложения из приложения
C++ оконные приложения
C++ Запустить параллельного приложения / Запуск приложения в новом консольном окне
Сборка многофайлового приложения: ошибка LNK2005 C++
Microsoft Visual C++ 2010 Express - не компилируются приложения. Ошибка "Не удаётся найти файл" C++
Ошибка при сборке приложения C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
08.10.2013, 12:53     Ошибка приложения #2
Динамические массивы создаются с использованием динамического выделения памяти, читай команды new.
Yandex
Объявления
08.10.2013, 12:53     Ошибка приложения
Ответ Создать тему
Опции темы

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