main.cpp:10:24: error: cannot convert ‘’ to ‘std::string** {aka std::basic_string**}’ in assignment [закрыт]

144
07 октября 2019, 04:30
#include <iostream>
using namespace std;
struct Deka{
    string **Koloda;
};
void SozKol(Deka *objkoloda){
    objkoloda -> Koloda={
        {"6b", "7b", "8b", "9b", "10b", "Jb", "Qb", "Kb", "Ab"},
        {"6k", "7k", "8k", "9k", "10k", "Jk", "Qk", "Kk", "Ak"},
        {"6h", "7h", "8h", "9h", "10h", "Jh", "Qh", "Kh", "Ah"},
        {"6p", "7p", "8p", "9p", "10p", "Jp", "Qp", "Kp", "Ap"}
    };
}
int main() {
    Deka objkoloda;
    SozKol(&objkoloda);
    cout << objkoloda.Koloda[0][0];
    return 0;
}
Answer 1

Указатели - это не массивы. Нельзя просто положить набор элементов "в указатель" - сначала вам нужно выделить память через new.

Чтобы не мучаться, просто возьмите std::vector:

#include <iostream>
#include <vector>
struct Deka
{
    std::vector<std::vector<std::string>> Koloda;
};
void SozKol(Deka *objkoloda)
{
    objkoloda->Koloda = {
        {"6b", "7b", "8b", "9b", "10b", "Jb", "Qb", "Kb", "Ab"},
        {"6k", "7k", "8k", "9k", "10k", "Jk", "Qk", "Kk", "Ak"},
        {"6h", "7h", "8h", "9h", "10h", "Jh", "Qh", "Kh", "Ah"},
        {"6p", "7p", "8p", "9p", "10p", "Jp", "Qp", "Kp", "Ap"},
    };
}
int main()
{
    Deka objkoloda;
    SozKol(&objkoloda);
    std::cout << objkoloda.Koloda[0][0];
    return 0;
}

Еще: Вместо того, чтобы вручную записывать кучу названий карт, их можно сгенерировать парой циклов for:

void SozKol(Deka *objkoloda)
{
    objkoloda->Koloda = {};
    for (char b : std::string("bkhp"))        
    {
        auto &v = objkoloda->Koloda.emplace_back();
        for (const std::string &a : {"6","7","8","9","10","J","Q","K","A"})
            v.push_back(a + b);
    }
}
READ ALSO
Как в CMAKE добавить параметр -fvisibility=default?

Как в CMAKE добавить параметр -fvisibility=default?

Пытаюсь собрать qtwebkit из исходников и получить доступ к WebCoreТ

117
Boost Asio. Очередь обработчиков

Boost Asio. Очередь обработчиков

Есть, например, этот код:

130
Маппинг аргументов командной строки JAVA

Маппинг аргументов командной строки JAVA

Есть некий framework, в котором парсится командная срокаСтрока имеет вид: --file=simple

116
Spring Test No qualifying bean of type с использование JavaConfig

Spring Test No qualifying bean of type с использование JavaConfig

недавно начал пользоваться JavaConfig в SpringИ сейчас решил попировать провести тесты, без использования xml

111