房天下 > 房天下问答 > 业主生活 > 其他
  • 关于 指针强制转换 问题

    在指针的强制类型转换:ptr1=(TYPE*)ptr2中,如果sizeof(ptr2的类型)大于sizeof(ptr1的类型),那么在使用指针ptr1来访问ptr2所指向的存储区时是安全的。如果sizeof(ptr2的类型)小于sizeof(ptr1的类型),那么在使用指针ptr1来访问ptr2所指向的存储区时是不安全的why??????/

    提问者:yj851210_z

    发布于2010-12-09

共1个回答
  • 安东在线 丨Lv 0
    因为当sizeof(ptr2的类型)小于sizeof(ptr1的类型)时,即ptr1所指向的元素的地址比ptr2的大,若ptr1=(TYPE*)ptr2,由于ptr1需要的内存比ptr2的大,多出来的那一部分内存就是靠溢出来获取,那一部分的内存都是不可预知的(有可能是系统空白资源,也有可能是你程序的变量储存位置等),所以在使用指针ptr1来访问ptr2所指向的存储区时是不安全的 。在使用指针ptr1来访问ptr2所指向的存储区时是安全的,这是因为prt2所需的地址比ptr1小,所指向的内存区域也在ptr1的内存范围之内。
    +1 2010-12-09 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。