Porównanie z literałami łańcuchowymi powoduje nieokreślone zachowanie?

Mam problem z programem, który próbuję kodować. To tylko program konsoli Windows i jestem bardzo nowy w C ++. To tylko mój czwarty program.

Problem, który mam, polega na tym, że kiedy uruchamiam mój program, nie mam błędów, ale wiele ostrzeżeń, które mówią „porównanie z literałami łańcuchowymi powoduje nieokreślone zachowanie” w liniach, które podkreślę poniżej.

Gdy program działa, zamiast dodawać liczby, które chcę, po prostu daje mi losową ogromną liczbę bez względu na to, co wstawię do moich danych wejściowych.

Oto kod:

#include <iostream>

using namespace std;

int main()
{
     int hold;
     int i;
     int n;
     i = 6;
     int result;
     int * price;
     char items[100][100];

     if (items == 0)
        cout << "No items can be stored";
    else
    {
        for (n=0; n<i; n++)
        {
            cout << "Item#" << n << ": ";
            cin >> items[n];
        }
        cout <<  "\nYou Entered: \n";
        for (n=0; n<i; n++)
            cout << items[n] << ", ";

    }
    for (n=0; n<i; n++)
    {
        if (items[n] == "ab"){
        price[n] = 2650;
        }

        else if (items[n] == "ae"){
        price[n] = 1925;
        }

        else if (items[n] == "ie"){
        price[n] = 3850;
        }

        else if (items[n] == "bt"){
        price[n] = 3000;
        }

        else if (items[n] == "pd"){
        price[n] = 2850;
        }

        else if (items[n] == "ga"){
        price[n] = 2600;
        }

    }

    for (n=0; n<i; n++)
    {
    result = result + price[n];
    }

    cout << "\nTotal gold for this build: " << result;
    cin >> hold;
    return 0;
}

Każda pomoc jest doceniana. Prawdopodobnie jest coś wielkiego, co zrobiłem źle. Nazwy w instrukcjach if są obecnie symbolami zastępczymi i dodam o wiele więcej instrukcji, gdy będę mógł pracować z nagimi 6, które są potrzebne do pracy.

questionAnswers(4)

yourAnswerToTheQuestion