大佬教程收集整理的这篇文章主要介绍了关于C中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; }
当我调用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]);
它会打印出来
a0 is 30 a1 is 1 a2 is 31 a3 is 30 s0 is 30 s1 is 14 s2 is ffffff9d s3 is 0
因为我指定了s = someMethod(128),所以对我来说没有任何意义. a和s不应该有相同的值吗?!?
任何帮助表示赞赏.谢谢!
以上是大佬教程为你收集整理的关于C中unsigned char *的奇怪问题全部内容,希望文章能够帮你解决关于C中unsigned char *的奇怪问题所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。