Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 185
1

Где ошибка в передаче указателя на массив?

27.06.2014, 12:48. Показов 1441. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
через указатель на массив хочу в массив записать значние -1 или +1. гдето ошибка в синтаксисе. ПРошу помочь. ПОдозреваю что ошибка в самом вызове функции... А конкретней я не правильно из main`a вызываю нужную функцию. НО значения в определении функции и инициализации функции принимаю правлиьно.

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
#include <stdlib.h>
using namespace std;
 
int InputLocPl1(int gor, int ver, int playID);
int fNumField(int[B] *pNumField, int s[/B], int playID, int ver, int gor);
 
 
int main(){
    
    setlocale(0,"");
    
    int playID;
    int gor, ver;
    
    int s=3;    
    int *pNumField;
 
    //1) Создание первоначального игрового поля. С пустыми значениями.
    //  а) Дубликат массива для инициализации его цифровыми занчениями.
    int NumField[s][s];
    
    cout    << "NumField: \n"; // забиваю значение пустой ячейки массива.
    for(int i=0; i<3; i++){
        for(int a=0; a<3; a++){
            NumField[i][a] = 0;
        }
    cout    << endl;        
    }
    
    cout    << "NumField[s][s] : \n"; // вывожу все забитые значения ячеек.
    for(int i=0; i<3; i++){
        for(int a=0; a<3; a++){
            cout    << NumField[i][a];
        }
    cout    << endl;        
    }
        
    //Иниц. Игровых массивов указателям.
    pNumField = &NumField[s][s];
    
    InputLocPl1(gor, ver, playID); // вводим координаты.
    fNumField[B](*pNumField, playID,[/B] ver, gor);//show new playfield
        
    
    return 0;
}
//2) Предложение ввести координаты. 
int InputLocPl1(int gor, int ver, int playID){
    cout    << "Игрок номер 1 введите координаты ячейки: Строка-Колонка...\n";
    
    int g, v;
    cout    <<"По-горизонтали: ";
    cin     >> g;
    cout    <<"По-вертикали: ";
    cin     >> v;
    
    gor = g+1;
    ver = v+1;
    playID = 1;
    
    return gor, ver, playID;
};
 
 
// очистка консоли.
// заполнение основног омассива  х ли 0.
int fNumField([B]int *pNumField, int s[/B], int playID, int ver, int gor){
    system("cls"); // очистка консоли.
    int plId;
    
    if(playID = 1) // определение 1 или -1 записывать в ячейку.
        plId = +1;
    
    
    else if(playID= 2) // определение 1 или -1 записывать в ячейку.
        plId = -1;
    
    
    int i=0, k=0;
    
    for(i; i<3; ++i){}// write -1 or 1 in stack
        for(k; k<3; ++k){
            if(i == ver && k == gor)
                *pNumField[k]=plId;
        }       
    }
    
    for(int i=0; i<3; ++i){ //show writen storage(mem. stack)
        for(int k=0; k<3; ++k){
            cout    << *pNumField[k];           
        }
    }
    return *pNumField[s];
}
Добавлено через 37 секунд
Строки 6, 43 и 68
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.06.2014, 12:48
Ответы с готовыми решениями:

Ошибка при передаче в функцию указателя на элемент массива
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include &lt;cmath&gt; ...

Ошибка Access violation при передаче указателя в функцию
выделяю память для нужд програмных и соханяю его. char *resadres =(char*) VirtualAlloc (0,...

При передачи указателя на обьект ошибка,а при передаче ссылки на указатель нет. Почему?
Hi All! class SomeObj { public: int x; }

Порча указателя при передаче в функцию
Добрый вечер. Проблема такая - при передаче в функцию структуры, полем которой является...

24
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 185
27.06.2014, 17:35  [ТС] 21
Author24 — интернет-сервис помощи студентам
Добавлено через 7 минут
я не пойму какая переенная что счелкает.... массив это матрица(квадрат прямоугольник, прямая с равнымыми частями...)

01. 02. 03. 04. строка это в длинну.
05. 06. 07. 08. столбец это в высоту.
09. 10. 11. 12.


или так выразить можно (01, 02, 03, 04)(05, 06, 07, 08)(09, 10, 11, 12)

какая переменная как переключает доступ к ячейке....




Глупый вопрос. - разобрался. Прежде чем задавать его стоило сперва самому подумать как бы я написал уравнение где надо найти положение чейки в строке, зная 2 числа.

Арр[0][0] - имя массива или нулевая ячейка.
Чтоб попсть в нужную ячейку из этого массива, по правилам обращения к ячейкам массива мне надо к к 0.0. координатам добавить число на котоое я хочу сместиться. Например я хочу попасть в 7 ячейку.

7 ячейка это Арр c индексом [2][1]. У меня двехмерный массив App[3][3].

формула по которой можно попасть в 7 ячейку
0.0.(адрес первой ячейки или нулевой!) + 3(количество ячеек в 1 строке)*Х(это строка в которой у меня находиться нужная мне ячейка) + У(это порядок нужной мне ячейки по отношению к началу строки к которой она находиться)

с первого взгялда запутанно, но когда сам пробуешь написать все эллементарно. С положением нужных ячеек разобрался! Алекс и Киррил - спасибо Вас огромное.

Туперь в коде очередная ошибка. с диапазоном записываемх значений. Мне нужно в ячейку записат ьчисло -1 или +1. Если я записываю 1, то все нормально, а -1 не пишет...
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
27.06.2014, 20:15 22
А как -1 подставляете?

Добавлено через 3 минуты
Я так понимаю, Вы хотите "крестики - нолики" написать?
0
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 185
27.06.2014, 20:33  [ТС] 23
угу) крестики нолики. с минусом разобрался, функция не видела идентификатор игрока.
сут ьв чем:
Игрок 1 Id=1;
игрок 2 Id=2;

потом функция отрисовки:
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
int fNumField(int *pNumField, int s, int playID, int ver, int gor){
    system("cls"); // î÷èñòêà êîíñîëè.
    
    int plId=0;
        
    if(playID == 1) // îïðåäåëåíèå 1 èëè -1 çàïèñûâàòü â ÿ÷åéêó.
        plId = -1;
    
    
    
    if(playID == 2) // îïðåäåëåíèå 1 èëè -1 çàïèñûâàòü â ÿ÷åéêó.
        plId = 1;
    
    for(int i=0; i<3; ++i){// write -1 or 1 in stack
        for(int k=0; k<3; ++k){
            if((i == ver) && (k == gor))
                *(pNumField+i*s+k)=plId;
        }   
    }
    
    for(int i=0; i<3; ++i){ //show writen storage(mem. stack)
        for(int k=0; k<3; ++k){
            cout    << *(pNumField+i*s+k) <<' ';            
        }
        cout    <<endl;
    }
    
    
    return *(pNumField), playID;
}
если Айди1 то ставим -1 если 2 тов ставим +1. это нао для определения победителя. ПОбедителя бду определять по такому алгоритму - где быстрее сумма строк собереться +3 или -1 там и будет победитель 1 или 2 игрок. Инчае ничья.

Добавлено через 1 минуту
сейчас ошибка не с знчением в ячейке а с заполнением игровог ополя. Функция отрисовки заполняет только ячейку с координатами 0.0. хотя в формуле неот ошибки в заполнении нет ошибки... может в выводе - проверяю.

Добавлено через 7 минут
145-149 строки гдето тут логичесская ошибка
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
27.06.2014, 20:55 24
Вы снова повторяете свою ошибку.
Цитата Сообщение от MMt Посмотреть сообщение
return *(pNumField), playID;
Во-первых, функция может вернуть только одно значение
Цитата Сообщение от MMt Посмотреть сообщение
int fNumField(int *pNumField, int s, int playID, int ver, int gor)
Во-вторых, Вам никакие значения не нужно возвращать, т.к. при вызове функции Вы не присваиваете ее значение никакой переменной.
0
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 185
27.06.2014, 21:43  [ТС] 25
Кирил у меня вопрос. по возврату.
в каком случае мне надо возвращать значения?
возвращают некоторое значение если внутри функции была создана некая новая переменная которая нигде раньше не оглашалась? чтоб остальной код мог "знать" откуда и что это за переменная...

Добавлено через 45 минут
нашел ошибку. я не правильно использую функцию. слишком сложное принципиально написание. мне достаточно в функцию передать координаты и выкинуть значение только 1 ячейки памяти из массива. не надо ничего выводить и так дале... над опереписать.
0
27.06.2014, 21:43
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.06.2014, 21:43
Помогаю со студенческими работами здесь

Использование указателя при передаче параметра
Добрый вечер! Надо оформить функцию &quot;LoadTexture&quot;. Вот задачка: IDirect3DTexture9 *tex;...

Ошибки преобразования при передаче указателя на функцию
Есть функция SQLITE_API int SQLITE_STDCALL sqlite3_exec( sqlite3*, ...

Функция требующая ссылку компилируется при передаче ей указателя
Такого я еще не видел.... проблемный участок кода находится на скрине... имеем указатель на CState...

При передаче указателя в качестве аргумента функции теряется значение
Добрый день. Есть простенькая задачка сделать связанный список. При этом создается первый эелемнт...


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
Информационное моделирование
hw_wired 28.01.2025
Введение в информационное моделирование В современном мире информационное моделирование стало неотъемлемой частью научной, образовательной и профессиональной деятельности. Это мощный инструмент. . .
Объекты и их имена
hw_wired 28.01.2025
Введение: Основы объектного подхода и их роль в информатике В современном мире информационных технологий объектный подход стал фундаментальным принципом организации и обработки информации. Этот. . .
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru