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

Таинственный тип void - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Затирание изображения. http://www.cyberforum.ru/cpp-beginners/thread322433.html
Программа выводит текст из файла в графическом режиме,и осуществляет скроллинг при помощи клавиш WASD,подскажите как осуществить затирание предыдущей позиции строк,чтобы при перемещении строк предыдущие их позиции стирались с экрана. До http://s005.***********/i211/1106/be/5c8431980898t.jpg После http://s002.***********/i200/1106/d8/dabac5bd2782t.jpg #include <conio.h> #include <stdio.h>...
C++ Создание игры и софта Скажите пожалуйста какие книги можете порекомендовать на с++ я хочу написать игру в шахматы для виндоус но не знаю с чего начать код то я писать начал а как реализовать к примеру доску фигурки кнопки я не знаю сказали mvs 2010 поможет, но на нем я и обучаюсь прошел только до оператора switch тоже самое касается софта я имею ввиду визуальное оформление программ. Всем спасибо заранее. http://www.cyberforum.ru/cpp-beginners/thread322419.html
C++ Сумма и разность чисел, представленных в виде bitset
Доброго времени суток. Реализую блочный алгоритм шифрования, в котором необходимо наличие операций сложения и вычитания чисел разрядностью 16 бит, а так же взятие по модулю 2^16 от суммы/разности. Бьюсь дня 4, постоянно ошибка с разностью. Надеюсь, кто-нибудь подскажет - в чём проблема. #define SIZE_ 32 #define SIZE_BLOCK_BIT 16 bitset<SIZE_> summa(bitset<SIZE_> A, bitset<SIZE_> B) {...
C++ ошибка в шифровании
Пытаюсь сделать шифрование через SLL, проблема в том, что если задавать строку для шифрования большую, то строка обрезается (маленькие строки нормально работают). Помогите разобраться что и где я ошибся Encrypt и Decrypt всяты с доки по openssl myEncrypt и myDecrypt - это мои функии, в качестве параметра string и выводят string. #include <stdio.h> #include <math.h> #include <errno.h>...
C++ Экспоненциальная функция http://www.cyberforum.ru/cpp-beginners/thread322413.html
Добрый день, необходимо запрограммировать функцию 1-exp(-at) Основной вопрос как описать экспоненту ? Простенькие задачки без экспоненты разобрался как сделать, а вот когда добавляю exp в формулу программа не понимает.
C++ не могу разобраться с typedef помогите разобраться typedef задает синоним типа только? например: typedef int myint; тут понятно все, вместо int можно писать myint а если написать подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
19.06.2011, 13:19     Таинственный тип void
xAtom,о чём речь? У ТС выделяется не три байта, выделяется массив из указателей на void, каждый имеет 4 байта размер (итого 12) и каждый инициализируется настолько грамотно, насколько позволяет работа с void*

Только у вас ещё до кучи конструируется указатель на массив из указателей на void. А у ТС этого нет, но у него всё равно указатель на массив указателей на void конструируется, пусть и неявно. Кстати, вот он:

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
#include <iostream>
 
using namespace std;
 
int main(){
        void * mas[3];
 
        mas[0] = new int(17);
        mas[1] = new char('q');
        mas[2] = new bool(true);
 
        cout << *((int *)mas[0]) << endl;
        cout << *((char *)mas[1]) << endl;
        cout << *((bool *)mas[2]) << endl;
 
        //Вот он        
        printf ("%x\n", mas);
        
        printf ("%x\n", mas[0]);
        printf ("%x\n", mas[1]);
        printf ("%x\n", mas[2]);
 
        getchar ();
        return 0;
 
}
И ошибку g++ выдаёт одну что на вашем коде что на тредстайтеровском. Так что у вас то же самое, только вид сбоку.

Добавлено через 15 минут
pontakrin, это чисто для познавания круто. на практике же вот:
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
#include <iostream>
 
using namespace std;
 
class A{
public:
        A(){ cout << "crated object A" << endl; }
        ~A(){ cout << "deleted object A" << endl; }
};
 
class B{
public:
        B(){ cout << "crated object B" << endl; }
        ~B(){ cout << "deleted object B" << endl; }
};
 
class C{
public:
        C(){ cout << "crated object C" << endl; }
        ~C(){ cout << "deleted object C" << endl; }
};
 
int main(){
 
        A a;
        B b;
        C c;
        getchar (); 
        return 0;
}
И не нужна лишняя сущность в виде массива указателей.

++++++++++++++++++++++++++++++++++++++++++++++++++=

Если же хочется использовать именно массив, то тут это уже моё сугубо лично мнение идёт, массив должен быть из каких-то однородных, что ли элементов. То есть оъекты A, B и С пусть будут объектами ОДНОГО класса. Но пусть в этом классе будет констуктор и соответственно A, B и С будут объектами одного класса, но сконструированными ПО-РАЗНОМУ. Так по-моему грамотно

В противном случае работаем с массивом указателей на объекты, которые ничё общего меж собой не имеют. Компилятор компилит, ну да. В общем, я бы над этим задумался дабы сразу приучиться к грамотному кодингу.
 
Текущее время: 21:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru