Podczas próby wydrukowania pierwszej linii poleceń argumentu:Jak uniknąć arytmetyki wskaźników przy użyciu char ** argv
std::cout << argv[0] << std::endl;
dzyń-uporządkowany daje ostrzeżenie:
ostrzeżenie: „Nie używać wskaźnik arytmetyka” z [cppcoreguidelines-pro-granic-pointer-arytmetyka]
Czy istnieje alternatywny sposób na wykorzystanie wartości argv
bez użycia arytmetyki wskaźnika? Czy nie ma dostępu do char**
za pomocą jakiejkolwiek rozsądnej metody, która będzie musiała używać arytmetyki wskaźnika?
Rozumiem, że istnieją pewne wyspecjalizowane funkcje do obsługi argumentów wiersza poleceń, ale wydają się zbyt ciężkie, aby po prostu wydrukować jeden argument.
Piszę w c++
, używając kompilatora clang
i budynku z cmake
.
Jeśli potrzebujesz tylko "argv [0]", możesz użyć '* argv'. Ale poza tym, nie. –
Spróbuj użyć 'i argv [0]'. Wierzę, że 'cout' chce wskaźnika do pojedynczej postaci. –
Czy nadal narzeka, jeśli tworzysz 'argv' tablicę, a nie wskaźnik? 'char * argv []'? – spectras