c - error when use array wchar -
i have variable type wchar (szdrive), want have array , element of has type wchar. here code:
typedef struct array_wchar{ wchar array_char[5]; }; array_wchar array_drivename0[10]; int array_drivename_index0 =0; wchar szdrive[5] = l" :\\";
but when write:
for(int i=0;i<10;i++){ array_drivename1[i].array_char = szdrive; }
it has error: error c2106: '=' : left operand must l-value
can explain me why , can give resolution? plz!
you can't assign directly array that. need either use memcpy / strcpy or assign individual elements:
memcpy(array_drivename0[i].array_char, szdrive, sizeof(array_drivename0[i].array_char));
or
for (j = 0; j < 5; j++) { array_drivename0[i].array_char[j] = szdrive[j]; }
also seem referencing array_drivename1 have declared array_drivename0.
your overall structure confusing. have array of structs, each of contains array of wchars - why not have array of arrays , remove struct entirely?
for example:
typedef wchar array_char_t[5]; array_char_t array_drivename0[10]; wchar szdrive[5] = l" :\\"; memcpy(array_drivename0[i], szdrive, sizeof(array_drivename0[i]));
Comments
Post a Comment