HI Rifat - You can't take the address of the sizeof() result. This is probably a more appropriate question for a c++ forum, as this is not gcc specific. Brian On Wed, Nov 10, 2010 at 9:21 AM, Rifat Mahmud <rftmhmd@xxxxxxxxx> wrote: > Here's my demo program's source code: > > #include <stdio.h> > #include <stdlib.h> > #include <iconv.h> > > int main() > { > FILE *f1, *f2; > char *a, *d; > wchar_t *b; > iconv_t c, n; > b=(wchar_t *)malloc(100*4);/*Memory allocation for the wide character array*/ > a=(char *)malloc(100*(sizeof(char)));/*Memory allocation for the char array*/ > c=iconv_open("UCS-4", "UTF-8");/*As I am reading Bangla characters > encoded in UTF-8 as a binary, and want to convert it into UCS-4, the > encoding which is used in gcc internally, as far as I know.(I'm using > Ubuntu 10.04)*/ > f1=fopen("pop1", "rb"); > f2=fopen("pop2", "wb"); > d=(char *)b;//Casting the wchar pointer to char pointer for use in > iconv function > fread(a, 1, 47, f1);//Reading > n=iconv(c, &a, &sizeof(a), &d, &sizeof(b));/*The problem is here, > theoratically it should work, and I implemented it just as shown in > iconv manual of GNU*/ > fwrite(b, 4, 17, f2); > iconv_close(c); > fclose(f1); > fclose(f2); > return 0; > } > > I have explained most of the things on comments. When I compile the > problem, it gives the following error: > > test3.c:18: error: lvalue required as unary ‘&’ operand > test3.c:18: error: lvalue required as unary ‘&’ operand > > I consulted many books and web resources before asking for help here, > but couldn't find any solution. > > The problem is on iconv function. How can I get rid of this? > > Thank you- > Rifat Mahmud >