memcpy()对二维数组和二维指针操作的区别

如题所述

数组定义的空间是连续的,并且长度等于你定义的数量
你的那个二维指针的空间不一定是连续的,并且使用的空间比你定义的要大
以char[2,3]叔祖和二维指针为例,地址都从0x1000看是
数组空间地址:
dataout[0][0]:0x1000
dataout[0][1]:0x1001
dataout[0][2]:0x1002
dataout[1][0]:0x1003
dataout[1][1]:0x1004
dataout[1][2]:0x1005
二维指针:
pdataout[0]:0x1000
pdataout[1]:0x1004
pdataout[0][1]:0x1018
pdataout[0][2]:0x1019
pdataout[0][3]:0x101a
pdataout[1][1]:0x1024
pdataout[1][2]:0x1025
pdataout[1][3]:0x1026

0x1000 0x100
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-04-04
二维数组如果是一行一行存的话会把那些一行一行的复制过去,二维指针的话会把指针复制过去,每条指针指向的数组要单独复制。本回答被网友采纳
相似回答