funkcja z argumentem struktury nie chce się wywołać

0

Witam ma problem bo funkcja w programie nie chce mi się wywoływać:

#include <iostream>

struct Point {
    char letter;
    int A;
    int B;
    double distance = 0.0;
};

//hypotenuse - przeciwprostokątna c^2 = a^2 + b^2
double hypotenuse (Point arrayPoint[], int sizeTab);

int main()
{
    int howManySteps = 0;
    std::cin >> howManySteps;
    do {
        int size = 0;
        std::cin >> size;
        Point tabPoints[size];

        for (int i = 0; i < size ; ++i) {
            std::cin >> tabPoints[i].letter >> tabPoints[size].A >> tabPoints[size].B;
            double c = hypotenuse(tabPoints , i); 
        }
        --howManySteps;
    } while (howManySteps > 0);
    return 0;
}

double hypotenuse (Point arrayPoint[], int sizeTab) {
    std::cout << "rak" << std::endl;
    std::cout << "size: "<< sizeTab << std::endl;
    return 0;
}
 
1

Zdefiniuj "nie chce się wywoływać". U mnie działa. http://melpon.org/wandbox/permlink/uDNzrb5Gft8igRJn

0

U mnie po wpisaniu punktu dalej np wpisuje punkt (to zależy ile ich tam podałem ) ale nie wyświetla tak ani size

3

Teraz zauważyłem, wychodzisz poza zakres tablicy, to jest UB: tabPoints[size].A >> tabPoints[size].B; (pomijając już fakt, że VLA nie ma w C++)

0

Ale funkcja dalej mi się nie odpala

1

No to debugger w rękę i zobacz na czym wisi. Ciężko mi zgadywać.

0

Ok jest coś dziwnego może mi ktoś wyjaśnić dlaczego po debugowaniu wszystko działa?

1 użytkowników online, w tym zalogowanych: 0, gości: 1