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

узнать количество элементов через указатель - C++

Восстановить пароль Регистрация
 
ТОрчОК
Заблокирован
11.05.2013, 22:46     узнать количество элементов через указатель #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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include"cards.h"
#include"cards2.h"
#include<string>
#include<iostream>
#include<conio.h>
#include<vector>
template<class T> class cards
{
    T card;
    T suit;
    std::string* cs;
    std::string* buffer;
    std::string player[6];
    std::string warrior[6];
public:
    cards();
    ~cards();
    std::string get(std::string c, std::string s);
    void cards_of_player();
    void cards_of_warrior();
    void remove_cards(const std::string mas[]);
};
template<class T>cards<T>::cards()
{
    cs=new std::string[36];
    buffer=new std::string[36];
}
template<class T>cards<T>::~cards()
{
    delete []cs;
    delete []buffer;
}
template<class T>std::string cards<T>::get(std::string c, std::string s)
{
    static int i=0;
    card=c;
    suit=s;
    cs[i]=c+s;
    std::string cs2=cs[i];
    i++;
    return cs2;
}
template<class T>void cards<T>::cards_of_player()
{
    int i;
    std::cout<<"ваши карты:"<<std::endl;
    for(int k=0;k<6;k++)
    {
        i=rand()%35;
        player[k]=cs[i];
        std::cout<<player[k]<<' ';
    }
    remove_cards(player);
}
template<class T>void cards<T>::cards_of_warrior()
{
    int i;
    std::cout<<std::endl<<"враг получил карты";
    for(int k=0;k<6;k++)
    {
        i=rand()%35;
        warrior[k]=cs[i];
    }
}
template<class T>void cards<T>::remove_cards(const std::string mas[])
{
    delete []buffer;
    buffer=new std::string[];
    std::cout<<sizeof("КАК?");                           //необходимо выделить память. как получить размер массива из    
    for(int i=0;i<sizeof("КАК?");i++)                        // из указателя на него
    {
            if(cs[i]!=mas[0]&&cs[i]!=mas[1]&&cs[i]!=mas[2]&&cs[i]!=mas[3]&&cs[i]!=mas[4]&&cs[i]!=mas[5])
            {
                static int j=0;
                buffer[j]=cs[i];
                std::cout<<std::endl<<buffer[j]<<std::endl;
                j++;
            }
    }
}
int main()
{
    setlocale(LC_ALL,"rus");
    cards<std::string> r;
    for(int i=0;i<(sizeof(ns)/sizeof(std::string));i++)
    {
        for(int j=0;j<(sizeof(ns2)/sizeof(std::string));j++)
        {
            r.get(ns[i].name,ns2[j].suit);
        }
    }
    r.cards_of_player();
    r.cards_of_warrior();
    getch();
    return 0;
}
проблему указал в комментариях. спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2013, 22:46     узнать количество элементов через указатель
Посмотрите здесь:

Как узнать, инициализирован ли указатель? C++
Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив. C++
Массивы. Подсчитать количество элементов, равных нулю и сумму положительных элементов (Написать через классы) C++
C++ Узнать указывает ли указатель
Вычислить и распечатать сумму элементов массива, используя указатель и метод доступа через разименование C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,902
Записей в блоге: 2
Завершенные тесты: 1
11.05.2013, 22:50     узнать количество элементов через указатель #2
Передавать отдельным параметром
ТОрчОК
Заблокирован
11.05.2013, 22:53  [ТС]     узнать количество элементов через указатель #3
так не пойдет, параметр будет менятся. по-другому никак? или вы что-то другое имели ввиду?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,902
Записей в блоге: 2
Завершенные тесты: 1
11.05.2013, 23:15     узнать количество элементов через указатель #4
Можете использовать std::vector вместо головной боли с массивом
Yandex
Объявления
11.05.2013, 23:15     узнать количество элементов через указатель
Ответ Создать тему
Опции темы

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