C-指针类型不兼容
类型不兼容
不同类型的指针不可以赋值。否则赋值后,编译可以通过,但是执行后数据会变量错误数据。
1 | int a = 32138; |
指针都是4个字节存,这个没问题,问题在取,取的时候根据什么类型,就会读多大的长度,如果是 int *
则会读4个字节,如果是 char *类型,则只会读一个字节,数据错误。
在 vs 上重现不出来,vs 直接报 类型不兼容。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 人话翻译机!
评论
不同类型的指针不可以赋值。否则赋值后,编译可以通过,但是执行后数据会变量错误数据。
1 | int a = 32138; |
指针都是4个字节存,这个没问题,问题在取,取的时候根据什么类型,就会读多大的长度,如果是 int *
则会读4个字节,如果是 char *类型,则只会读一个字节,数据错误。
在 vs 上重现不出来,vs 直接报 类型不兼容。