Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 17.11.2013
Сообщений: 96

Найти ошибку. Массив. Указатели

13.12.2013, 13:11. Показов 690. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, помогите, пожалуйста, очень нужно...
Пытался написать код программы, не особо получается...
Получилось вот что (после кода расскажу, что нужно)
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
#include <iostream>
using namespace std;
int main()
{
    setlocale(0, "");
    int b, i, *c, d;
    int a[9];
    int *x[9];
    
    {
        std::cout << "Введите 9 элементов массива: \n";
        for (b = 0; b <= 8; b++)
            std::cin >> a[b];
        for (b = 0; b <= 8; b++)
            std::cout << a[b] << "\t";
        cout << "\n";
        system("PAUSE");
    }
 
    {
        for (i = 0; i < 9; ++i)
            x[i] = &a[b];
    }
    system("PAUSE");
 
    return 0;
}
Нужно чтобы в x[i] лежали адреса (индексы) значений, которые(значения) хранятся в a[b] (значения в a[b] задаю сам , т.е. пользователь)
x[i] - массив указателей
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.12.2013, 13:11
Ответы с готовыми решениями:

Указатели на функции, найти ошибку в коде
Доброго времени суток. Мне нужен массив указателей на функции. Компилятор выдает ошибку, не могу понять, в чем она заключается. ...

не работет программа или функция, не могу найти ошибку, ругается не неправильные указатели
суть программы, вводится строка, с клавиатуры задается число, если есть слова в строке, в которых есть заданное число случайных цифр, то...

Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов?
Есть массив int **mas; mas=new int*; // выделил место под пять строк, верно ? mas=new int;// выделил для первой строки матрицы два...

11
 Аватар для egor2116
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
13.12.2013, 13:21
Пытался написать код программы, не особо получается...
А что не получилось
при выводе массива x[] , будут отображены адреса значений массива а[]. Или надо не так ?
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
#include <iostream>
using namespace std;
int main()
{
    setlocale(0, "");
    int b, i, *c, d;
    int a[9];
    int *x[9];
    
    
        std::cout << "Ââåäèòå 9 ýëåìåíòîâ ìàññèâà: \n";
        for (b = 0; b <= 8; b++)
            std::cin >> a[b];
        for (b = 0; b <= 8; b++)
            std::cout << a[b] << "\t";
        cout << "\n";
    
 
    
        for (i = 0; i < 9; ++i)
            x[i] = &a[b];
            
        for (i = 0; i < 9; ++i)
            cout << x[i] << " ";
        
        cout << "\n";
    
    system("PAUSE");
 
    return 0;
}
Вывод
Миниатюры
Найти ошибку. Массив. Указатели  
0
2 / 2 / 0
Регистрация: 17.11.2013
Сообщений: 96
13.12.2013, 13:37  [ТС]
А как сделать, чтобы написав x[адрес] выводило число, которое находится по этому адресу?
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
13.12.2013, 13:49
Цитата Сообщение от Kostia1012 Посмотреть сообщение
C++
1
x[i] = &a[b];
C++
1
x[i] = a+i;
Цитата Сообщение от Kostia1012 Посмотреть сообщение
А как сделать, чтобы написав x[адрес] выводило число, которое находится по этому адресу?
C++
1
*x[i]
0
 Аватар для uhx
60 / 60 / 19
Регистрация: 11.07.2013
Сообщений: 305
13.12.2013, 13:59
Цитата Сообщение от Qwertiy Посмотреть сообщение
C++
1
x[i] = a+i;

C++
1
*x[i]
int *x;
x = &a[9];
не?

Добавлено через 2 минуты
Вот исправленный код. Адреса показывает верно, все они различаются.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main()
{
    setlocale(0, "");
    int b, i, *c, d;
    int a[9];
    int *x;
    x = &a[0];
        std::cout << "Введите 9 элементов массива: \n";
        for (b = 0; b <= 8; b++)
            std::cin >> a[b];
        system("cls");
        for (b = 0; b <= 8; b++)
            std::cout << a[b] << " - "<<x++<<endl;
    system("PAUSE>>void");
}
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
13.12.2013, 14:02
Цитата Сообщение от Kostia1012 Посмотреть сообщение
А как сделать, чтобы написав x[адрес] выводило число, которое находится по этому адресу?
Тебе дан относительный адрес, то есть смещение? Тогда можно прямо так и написать.
C++
1
std::cout<<x[offset];
. Но только для однобайтных данных, иначе
C++
1
std::cout<<(<type>)(*(((uint8_t)(&x))+offset));
, или
C++
1
std::cout<<x[offset/sizeof(<type>)];
.
0
 Аватар для uhx
60 / 60 / 19
Регистрация: 11.07.2013
Сообщений: 305
13.12.2013, 14:04
Даже можно так, для правдоподобности:
C++
1
            std::cout << a[b] << " - "<<*x<<" - "<<x++<<endl;
15 строка.

Добавлено через 1 минуту
Цитата Сообщение от taras atavin Посмотреть сообщение
Тебе дан относительный адрес, то есть смещение? Тогда можно прямо так и написать.
C++
1
std::cout<<x[offset];
. Но только для однобайтных данных, иначе
C++
1
std::cout<<(<type>)(*(((uint8_t)(&x))+offset));
, или
C++
1
std::cout<<x[offset/sizeof(<type>)];
.
Зачем такие трудности? Ему просто надо через указатель вывести адрес определенной ячейки в массиве, a[0], a[1] и тд...
0
2 / 2 / 0
Регистрация: 17.11.2013
Сообщений: 96
13.12.2013, 15:30  [ТС]
Цитата Сообщение от Qwertiy Посмотреть сообщение
C++
1
x[i] = a+i;

C++
1
*x[i]
Мне нужно создать массив указателей, в котором будут хранится адреса значений одномерного массива...
т.е. нужно чтобы, когда я обращался к массиву указателей и вводил cout<<*x[2]; то мне бы вывело значение которое лежит в одномерном массиве по этому адресу а[2]
Как сделать
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
13.12.2013, 15:36
Цитата Сообщение от Kostia1012 Посмотреть сообщение
Мне нужно создать массив указателей, в котором будут хранится адреса значений одномерного массива...
т.е. нужно чтобы, когда я обращался к массиву указателей и вводил cout<<*x[2]; то мне бы вывело значение которое лежит в одномерном массиве по этому адресу а[2]
Ну так это адрес==a[2], а не a[адрес]. Разыменуй элемент и ни каких гвоздёв.
C++
1
*a[2]
.
0
2 / 2 / 0
Регистрация: 17.11.2013
Сообщений: 96
13.12.2013, 15:42  [ТС]
Цитата Сообщение от taras atavin Посмотреть сообщение
Re: Найти ошибку. Массив. Указатели
Сообщение от Kostia1012
Мне нужно создать массив указателей, в котором будут хранится адреса значений одномерного массива...
т.е. нужно чтобы, когда я обращался к массиву указателей и вводил cout<<*x[2]; то мне бы вывело значение которое лежит в одномерном массиве по этому адресу а[2]
Ну так это адрес==a[2], а не a[адрес]. Разыменуй элемент и ни каких гвоздёв.
Код C++
1
*a[2]
покажите в моем изначальном коде, как это должно выглядеть, пожалуйста...
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
13.12.2013, 17:43
Цитата Сообщение от Kostia1012 Посмотреть сообщение
покажите в моем изначальном коде, как это должно выглядеть, пожалуйста...
Ну я ж ответил...
1
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
13.12.2013, 18:07
Цитата Сообщение от Kostia1012 Посмотреть сообщение
покажите в моем изначальном коде, как это должно выглядеть, пожалуйста...
А что в нём не так?

Добавлено через 2 минуты
Кроме перепутанных индексов:
C++
1
2
for (i = 0; i < 9; ++i)
 x[i] = &a[i];
.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.12.2013, 18:07
Помогаю со студенческими работами здесь

Отсортировать массив и вывести на экран (массивы и указатели на указатели)
Даны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s- результат сессии F студента. Отсортировать массив S по...

Найти ошибку. Записать 20 целых чисел в массив. Переписать отрицательные в массив А, а положительные в Б
Доброго времени суток. Записать 20 целых чисел в массив А. Переписать отрицательные из них подряд в массив В, а положительные - в массив C....

Найти ошибку. Одномерный массив
Программа должна находить три максимальных элемента массива, но вопреки моим ожиданиям она этого не делает, а вместо этого выводит три...

Массив+кратность. найти ошибку.
13. Îïðåäåëèòå â ïðîãðàììå ìàññèâ int m = {6, 17, 28, 7, 74, 29, 45, 3, 28, 8, 10, 87, 19, 9, 5, 28, 2, 59, 12, 31}; ïîñëå ÷åãî...

Динамический массив (найти ошибку)
Здравствуйте уважаемые знатоки!) В общем программирую я не так давно и взялся написать динамический массив на основе связанного списка....


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru