Wskaźnik na tablicę struktur
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

Wskaźnik na tablicę struktur

AutorWiadomość
Temat założony przez niniejszego użytkownika
Wskaźnik na tablicę struktur
» 2018-07-06 12:43:15
Witam, mam taki program:
C/C++
#include <iostream>
#include <string>

struct Batonik
{
    std::string brand;
    float weight;
    int calories;
};

int main()
{
    using namespace std;
   
    Batonik * kuk = new Batonik[ 3 ];
   
    kuk[ 0 ] = { "Snickers", 3.1, 280 };
    kuk[ 1 ] = { "Mars", 2.9, 260 };
    kuk[ 2 ] = { "Princessa", 2.5, 200 };
   
    cout << kuk[ 0 ].brand << ", " << kuk[ 0 ].weight << ", " << kuk[ 0 ].calories << "\n";
    cout << kuk[ 1 ].brand << ", " << kuk[ 1 ].weight << ", " << kuk[ 1 ].calories << "\n";
    cout << kuk[ 2 ].brand << ", " << kuk[ 2 ].weight << ", " << kuk[ 2 ].calories << "\n";
   
    delete[] kuk;
   
    return 0;
}
Wszystko z nim w porządku, natomiast kiedy w miejsce linijki
std::string brand;
wstawię jakąś tablicę, np.
char brand[ 20 ];
program nie chce się skompilować.
Czy da się utworzyć wskaźnik na tablicę struktur, w której jedną z danych jest tablica znaków, a następnie przypisać przez wskaźnik dane tej tablicy? Dodam, że używam Dev-C++ 5.11.
P-171758
» 2018-07-06 14:58:22
C/C++
kuk[ 0 ] = Batonik { "Snickers", 3.1, 280 };
kuk[ 1 ] = Batonik { "Mars", 2.9, 260 };
kuk[ 2 ] = Batonik { "Princessa", 2.5, 200 };
Możesz to zrobić tak.
P-171760
Temat założony przez niniejszego użytkownika
» 2018-07-06 18:19:26
Teraz działa, dziękuję. A czy mógłbyś mi wyjaśnić dlaczego do tablicy trzeba to dodać, a do obiektu string już nie?
P-171761
» 2018-07-06 20:20:22
Najwyraźniej GCC ma opory przed tym zapisem. W Visual Studio akurat ta część twojego zapisu działa, za to kompilator krzyczy na twoją inicjalizację floatów, bo jest zawężająca z double, co od C++11 jest zabronione.
P-171762
» 2018-07-07 10:54:15
Ale to nie jest zawężająca konwersja, bo wartość źródłowa jest wyrażeniem stałym.
P-171764
« 1 »
 Strona 1 z 1