1 Востаннє редагувалося Дмитро-Чебурашка (06.02.2018 01:32:42)

Тема: Як зняти копію з char *env[]?

Добрий вечір! подивіться , будь ласка - я ось тут хочу зберегти дублікат змінної, без складних застосувань інших класів, або без ще - яких наворотів або посимвольних складних копіювань. Ну хіба складно? Так, я забув роботу з символами.
Але інтутивно розумію що має бути простий шлях. Ось же, будь - який вказівник являє собою адресу якиа являє собою кінець кінцем чісло, чому я ніяк не можу зберегти його в якості покажчика на це місце?? Який ундуліфед?


#include <iostream>

    int main(int argc, char *argv[], char *env[])
    {
        char* _argv = argv,  char* _env = env;//error: cannot convert 'char**' to 'char*' in initialization|
        char** _argv = argv,  char** _env = env; //error: expected unqualified-id before 'char'|
        int _argv = (int)argv,  int _env = (int)env;//error: expected unqualified-id before 'int'|
        char*** _argv = &argv,  char*** _env = &env;//error: expected unqualified-id before 'char'|
       
        return 0;
    }

Подякували: Betterthanyou1

2

Re: Як зняти копію з char *env[]?

Спрощую задачу:

int x, int y; //та сама ваша помилка

А так - другий спосіб підходить. Якщо цю помилку виправите.

Подякували: Дмитро-Чебурашка1

Re: Як зняти копію з char *env[]?

Спасибі!!!!

4

Re: Як зняти копію з char *env[]?

Дмитро-Чебурашка написав:

Добрий вечір! подивіться , будь ласка - я ось тут хочу зберегти дублікат змінної, без складних застосувань інших класів, або без ще - яких наворотів або посимвольних складних копіювань. Ну хіба складно? Так, я забув роботу з символами.
Але інтутивно розумію що має бути простий шлях. Ось же, будь - який вказівник являє собою адресу якиа являє собою кінець кінцем чісло, чому я ніяк не можу зберегти його в якості покажчика на це місце?? Який ундуліфед?


#include <iostream>

    int main(int argc, char *argv[], char *env[])
    {
        char* _argv = argv,  char* _env = env;//error: cannot convert 'char**' to 'char*' in initialization|
        char** _argv = argv,  char** _env = env; //error: expected unqualified-id before 'char'|
        int _argv = (int)argv,  int _env = (int)env;//error: expected unqualified-id before 'int'|
        char*** _argv = &argv,  char*** _env = &env;//error: expected unqualified-id before 'char'|
       
        return 0;
    }

А нафіга потрібен другий вказівник в одній області видимості? Чим просто argv + env не кошерно?

I belong to the Dead Generation.

5

Re: Як зняти копію з char *env[]?

Навіщо взагалі плюси, коли працюєш з голими вказівниками?

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»