# Include "stdafx. H"
# Include "memory. H"
Void memset_1 (unsigned char * & V1)
{
Unsigned char * pTMP = (unsigned char *) V1;
Memset (pTMP, 100,20 );
}
Int _ tmain (INT argc, _ tchar * argv [])
{
Unsigned char * pchar = new unsigned char [20];
Memset (pchar, 0, 20 );
Printf ("before memset % d \ n", pchar [1]);
Memset_1 (pchar );
Printf ("after memset % d \ n", pchar [1]);
Delete [] pchar;
Return 0;
}
This code runs OK, and the following code runs a compilation error!
Error c2664: "memset_1": parameter 1 cannot be converted from "unsigned char [20]" to "unsigned char *&"
// C_def.cpp: defines the entry point of the console application.
//
# Include "stdafx. H"
# Include "memory. H"
Void memset_1 (unsigned char * & V1)
{
Unsigned char * pTMP = (unsigned char *) V1;
Memset (pTMP, 100,20 );
}
Int _ tmain (INT argc, _ tchar * argv [])
{
Unsigned char pchar [20];
Memset (pchar, 0, 20 );
Printf ("before memset % d \ n", pchar [1]);
Memset_1 (pchar );
Printf ("after memset % d \ n", pchar [1]);
Delete [] pchar;
Return 0;
}
Do you see the difference?