2015-06-14 145 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好吧,让我跟他玩一下负鼠:(你会破坏我的下午 –

回答

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