2015-06-14 3 views
-4

Я хочу получить VECTOR в моей основной функции. Код - это.C/C++ Векторный и ссылочный параметр

int myfunction(void); 


int main(){ 

    int p = myfunction(void); 
    std::cout << p[2] << std::endl; 

}; 


int myfunction(void){ 
     int new array[4]={0,1111,2222,3333}; 
     int *p; 
     p = array; 
     return p; 
}; 
+0

В функции 'main()' вы не можете получить никаких параметров, кроме заданных параметров 'int argc, char * argv []'. –

+0

@ πάνταῥεῖ Я думаю, он хочет, чтобы 'myfunction' возвращал массив/вектор в main. – tux3

+0

@ tux3 Aw, позволь мне немного поиграть в опоссум :(Ты собираешься испортить мне день. –

ответ

4

В C++ вы могли бы сделать:

std::vector<int> myfunction(); 

int main(){ 
    std::vector<int> p = myfunction(); 
    std::cout << p[2] << std::endl; 
} 

std::vector<int> myfunction(){ 
    return std::vector<int>{0,1111,2222,3333}; 
} 

И в C вы можете сделать:

int* myfunction(void); 

int main(void){ 
    int* p = myfunction(); 
    printf("%d\n", p[2]); 
    free(p); 
} 

int* myfunction(void){ 
    int tmp[] = {0,1111,2222,3333}; 
    int* array = (int*)malloc(sizeof(tmp)); 
    memcpy(array, &tmp, sizeof(tmp)); 
    return array; 
} 

Теперь, если у вас есть проблемы с этим кодом, я рекомендую вам пойти забрать хорошая книга C или C++ (в зависимости от того, что вас интересует) и ознакомьтесь с основами языка, потому что вы, похоже, очень смущены.

+0

Спасибо вам большое =) – Strife

Смежные вопросы