niestety takie porównanie nie działa, mimo że program został uruchomiony ze ścieżki takiej jak zapisana w tablicy “userpath” warunek zawsze zwraca fałsz. Z początku myślałem że to kwestia jakiegoś białego znaku na końcu “filename” więc dodawałem do “urespath” \n, \0 ale nic nie działa, teraz już nie mam pomysłu.
lpFilename [out]
A pointer to a buffer that receives the fully qualified path of the module. If the length of the path is less than the size that the nSize parameter specifies, the function succeeds and the path is returned as a null-terminated string.
Łańcuchy znakowe w C i C++ są standardowo zakończone \0, więc nic nie musi dodawać.
@kox8186
W C i C++ nie można porównywać tablic.
Tablica jest niejawnie konwertowana na wskaźnik do jej pierwszego elementu i porównujesz wskaźniki, a że oba napisy znajdują się w innych miejscach w pamięci to wychodzi fałsz
Porównywać napisy możesz strcmp, który zwraca 0 dla równych napisów.
Faktycznie do końca “userpath” nic nie musiałem dodawać. Funkcja “strcmp” zdała egzamin porównała zawartość tych dwóch tablic char’ów a nie tak jak to robił if porównanie adresów.