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

Разыменовывание воид указателей, хранящихся в массиве - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Исключения http://www.cyberforum.ru/cpp-beginners/thread914184.html
Привет всем. Помогите плиз с задачкой, никак не могу решить, нужно из кода ниже сделать классы производными от logic_error, определенного в загаловочном файле <stdexcept>. Сделать так чтобы каждый метод what() сообщал имя функции и суть проблемы. Объекты исключений не должны содержать значение ошибки, они должны просто поддерживать метод what(). Помогите плиз, а то уже крыша едет =-O...
C++ Открыть файл через консоль ребят подскажите ,есть текстовый файл в екселе,хочу сделать чтоб в консольном приложении при нажатии опред клавиши этот файл открывало отдельным процессом в проге микрософт ексель,т.е как будто я просто по этому документу мышкой щелкнул,как это можно сделать,я так понимаю эта функция тут не катит да?file = fopen("1.xlsx","r") http://www.cyberforum.ru/cpp-beginners/thread914171.html
C++ Отправка письма на мыло
С помощью какого кода можно отправить письмо на мыло (C++ конечно)?? Я просто такое ещё не изучал и в нете ничего толкового не нашел... Напишите код
ИИ нехочет ходить куда надо C++
Доброго времени суток. Возникла проблема с ИИ, который никак не хочет корректно работать. Если кто сможет помочь, заранее благодарю. Дано: карта в виде массива 15х20. 1 - возможно движение, 0 - невозможно. Объект размером 32х32 (1 клетка карты) Логика: Обьект движется. При появлении других вариантов двежиния (лево, право) - Если новых вариантов более 1-го, то выбираем направление...
C++ Друзья, я нуждаюсь в советах http://www.cyberforum.ru/cpp-beginners/thread914160.html
Здравствуйте Друзья, я нуждаюсь в советах. Мне было всегда интересно. Вот как же программисты создают разные сложные программы, например плееры, игры и т.д. Я знаю, что программист один сам не сможет осилить создание таких программ. Я вот сейчас начал изучать основы языка программирования С++, одобряете ли вы мой выбор языка программирования?! Но там где я сейчас учу основы С++, мы...
C++ Как в переменную записать текст, а затем в конце добавить значение переменной? Как в переменную записать текст, а затем в конце добавить значение переменной? Как ни пробовал, компилятор (Dev C++) всегда выдает ошибки, но если тип переменной string, тогда не выдает ошибки на такое: b="words"&&amp;a; Но когда я вывожу значение переменной "b", оно отображает смайл. подробнее

Показать сообщение отдельно
WinstonCherchil
 Аватар для WinstonCherchil
7 / 7 / 0
Регистрация: 20.01.2011
Сообщений: 73
28.06.2013, 20:19  [ТС]     Разыменовывание воид указателей, хранящихся в массиве
Мне не понятно зачем Вам остальной код. Я вроде уточнил что проблема со структрой заключалась не в том, что компилятор ругается на синтаксические ошибки, а в том что компилятор умирал во время компилиции, сообщив о Segmentation fault.
Bash
1
internal compiler error: Segmentation fault
Почему я уверен, что дело именно в структуре? Потому что я её закоментировал и компилятор смог без ошибок собрать прогу. Структуру можно было использовать, но там кастыль получался на 10 строк. По этому решил через массив.

Вот код, который Вы просили.

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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/*
 * File:   main.cpp
 * Author: Winston
 *
 * Created on 1 Январь 2013 г., 0:48
 */
 
 
 
 
#include <iostream>
#include <winsock2.h>
#include <windows.h>
#include <thread>
#include "LineageMessages.h"
#include "classConfig.h"
#include "classAI.h"
#define MAX_CONN 63
 
unsigned long WINAPI pushMessages(void *);
 
 
using std::cout; using std::endl; using std::cin;
 
 
int main(){
 
    LineageMessages netCmds(16,16);
    LineageMessages serverConnection(128, 10240);
    void * pt[2] ={(void *)&netCmds, (void *)&serverConnection};
    /*
    запускаем сетевой и AI процессы.
    Запускаем цикл командного интерпретатора.
    */
    cout << "Good day! This is HiveMind control console. Type commands to control bots" <<
            endl << "or type 'help' if you are not familiar with this program. GL/HF" << endl;
    HANDLE AIThreadHandle = CreateThread(NULL, 0, mainAITread, nullptr, 0, NULL);
    HANDLE pushMThread = CreateThread(NULL, 0, pushMessages, pt, 0, NULL);
    //cout << pt[0] << " " << pt[1] << endl;
    char cmd[64] = { 0 };
    unsigned char msg[16] {0};
    unsigned char servMsg[10240] {0};
    while (!cin.fail()) {
        cin.getline(cmd, 64);
        cout << endl;
// TODO (Winston#1#): Запилить интерпретатор команд
 
        if (strcmp (cmd,"quit")== 0){
            cout << "Are you sure? All your connections will be lost. (y/n):" ;
            cin.getline(cmd, 64);
            if(!cin.fail() and ((strcmp (cmd,"y")== 0) or (strcmp (cmd,"Y")== 0))){
                msg[0] = 0; msg[1] = 0;
                netCmds.push(msg, 16, 0);
                Sleep(1000);
                cout << "Bye!" << endl;
                break;
            }
        }
        else if (strcmp (cmd,"connect")== 0){
            //сообщаем в netCmds что надо создать подключение...
            msg[0] = 0; msg[1] = 1;
            netCmds.push(msg, 16, 0);
        }
        else if (strcmp (cmd,"disconnect")== 0){
            msg[0] = 0; msg[1] = 2;
            netCmds.push(msg, 16, 0);
 
        }
        else if (strcmp (cmd,"stop")== 0){
            msg[0] = 0; msg[1] = 3;
            netCmds.push(msg, 16, 0);
 
        }
        else {
            cout << "Pleaze enter valid command: ";
        }
    }
    CloseHandle(AIThreadHandle);
    CloseHandle(pushMThread);
 
    return 0;
}
 
unsigned long WINAPI pushMessages(void * _in){
 
    WSADATA wsa = { 0 };
    SOCKET client_socket[63];
    WSAEVENT updateEvents[63];
    WSAEVENT * pUpdateEvents[63] = { nullptr };
 
    if(WSAStartup(MAKEWORD(2, 2), &wsa)){ //инициализуем библиотеки...
        cout << "Some error occurred!" << endl;
        return 1;
    }
 
    for(int i = 0; i < MAX_CONN; i++){
         //подготовка сокетов к подключению...
        client_socket[i] = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
        updateEvents[i] = WSACreateEvent();
        //Проверять сокеты будем в цикле перед подключением
    }
    int owners[63];
    LineageMessages * netCmds = (LineageMessages *)((void *)((unsigned long long *)(_in))[0]);
    LineageMessages * serverConnection = (LineageMessages *)((void *)((unsigned long long *)(_in))[1]);
    //cout << netCmds << " " << serverConnection << endl;
    bool goOn = true;
    unsigned char netMsg[16];
    unsigned char netBuffer[10240];
    unsigned int sz;
    int owner;
    while(goOn){
        Sleep(200);
        if(!netCmds->isEmpty()){
            netCmds->pull(netMsg, sz, owner);
            if(netMsg[1] == 1){
                cout << "Connecting..." << endl;
 
            }
            else if(netMsg[1] == 2){
                cout << "Disconnecting..." << endl;
            }
            else if(netMsg[1] == 0){
                goOn = false;
            }
        }
    }
    cout << "Exitting network..." << endl;
    return 0;
}
P.S. По хорошему надо компилятор обновить или заменить. Но я к этому уже привык.
 
Текущее время: 12:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru