So, I have a method that returns unsigned char *
unsigned char* someMethod(num) unsigned short num; { //do some stuff with num and change values of a unsigned char * a = (unsigned char*) malloc(4); printf("a0 is %x\n",a[0]); printf("a1 is %x\n",a[1]); printf("a2 is %x\n",a[2]); printf("a3 is %x\n",a[3]); return a; }
When I called someMethod (128):
unsigned char* s = someMethod(128); printf("s0 is %x\n",s[0]); printf("s1 is %x\n",s[1]); printf("s2 is %x\n",s[2]); printf("s3 is %x\n",s[3]);
He will print
a0 is 30 a1 is 1 a2 is 31 a3 is 30 s0 is 30 s1 is 14 s2 is ffffff9d s3 is 0
This makes no sense to me as I assign s = someMethod (128). Should a and s have the same values?!? Any help is appreciated. Thanks!
source share