vendredi 1 juillet 2016

Why the variable 'len_' never been change in the function ca_time

void ca_time(int *arr,int &len_) //the variable len_'s value always is 0 
{
    cout << "You only got five seconds to type the number 1~5,,ready go,,\n";
    _sleep(5000);
    cout << "Sorry time out!!\n";
    cout << "Ok, here is your greads:\n";
    for(int i = 0; i < len_; i ++)
    {
        cout << arr[i] << " ";
    }
    cout << endl;
    cout <<"-->" << len_ << endl;
    return;
}
void fun_type(int *arr,int &len_)
{
    memset(arr,'\0',sizeof(arr));
    for(; len_ < 5; len_ ++)
    {
        cin >> arr[len_];
    }
}
int main()
{
    int arr[100];
    int len = 0;
    thread time(ca_time,arr,len);
    time.detach();
    fun_type(arr,len);
    system("pause");
    return 0;
}

But it work when changed the quote to the address(point variable).Why? Somebody say that's a IED's bug?But I don't think so .So What the hell?

Aucun commentaire:

Enregistrer un commentaire