C ++ Назначение значения для char * argv [] из программы - PullRequest
0 голосов
/ 13 апреля 2020

Обычный способ передачи значений через argv в этом объявлении

int main(int argc, char* argv[]) {

- передать его из консоли через массив argv в программу. Я столкнулся с ситуацией, в которой я хотел добиться чего-то другого: Программа имеет обычное объявление

int main(int argc, char* argv[]) {

, и внутри моей программы у меня есть

function void foo(argv[1], 0). 

Вот схема и поток логики моей программы c:

program ggg.cpp
     :
void foo(char* x, int y) {
     :
}//end foo
     :
int main(int argc, char* argv[]) {
     :
   foo(argv[1], 0);
     :
}//end main

(1) Мой обычный метод. Обычно, когда я компилирую программу ggg. cpp, и мой консольный ввод:

ggg.exe. // второй ввод - точка "."

программа работает нормально (потому что argv [1] = '.' Внутри программы)

(2) Однако я хотел стать инновационным и выполнить программу как:

ggg.exe // здесь точка не включена

, так что внутри программы я могу назначить точку argv [1], но Я продолжал получать ошибки - независимо от того, как я пробую другие варианты оператора присваивания.

Кстати, я пробовал оператор присваивания

argv[1]='.';

внутри основной программы (в методе (2 )) но это не сработало. Я получил сообщение об ошибке.

Справочная информация. Раньше я очень хорошо программировал, но сейчас я многое забыл, потому что я оставил кодирование для очень долго заниматься другими делами.

...