Когда я передаю строку из файла .mm в файл .cpp, программа компилируется нормально, но во время выполнения я получаю ошибку "EXC_BAD_ACCESS" в Xcode - PullRequest
0 голосов
/ 20 мая 2018

Мой .mm файл -

std::string argv([argumentString UTF8String]);
int x = obj.zmain(argumentCount,argv);

Объект является объектом типа ZMain.

Мой .cpp файл -

    int ZMain::zmain(int argc,std::string argv) {

        std::istringstream iss(argv);
        std::string s;
        char *paramArray[argc];
        int i=0;
        while ( getline( iss, s, ' ' ) ) {
            strcpy(paramArray[i],s.c_str());
            std::cout<<paramArray[i]<<std::endl;
            i++;
        }
       return 0;
}

Я получаю ошибку "EXC_BAD_ACCESS"иногда внутри цикла, иногда до цикла, а иногда после цикла.В чем будет проблема?

1 Ответ

0 голосов
/ 20 мая 2018

Используйте NSArray<NSString *> *argv = [[NSProcessInfo processInfo] arguments] на стороне Objective-C, которая уже содержит проанализированные значения (см. Этот вопрос - Доступ к аргументам командной строки в Objective-C ).

Затем преобразуйте егов std::vector<string> перед передачей в zmain.cpp (см. NSMutableArray в std :: vector ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...