memcpy内存拷贝和=直接赋值有什么区别

memcpy会执行数据复制,而赋值语句只是简单将一个指针的值传给另一个指针,指针对应的存储空间的内容并不会改变。

 

memcpy内存拷贝和=直接赋值有什么区别_第1张图片

 

图解

"="操作一般不会分配内存(在声明初始化时会分配),memcpy()函数的字面意思就是内存拷贝,把一块内存中的数据拷贝给另一块内存,这个过程中有新的内存分配了。

 

 

memcpy从名字上也可以理解出来是把内存拷贝,也就是说把一个内存里面的东西拷贝到另一个内存中。而赋值就不一定了,比如两个声明为整形变量的变量,赋值就是跟memcopy一样,但一个是整形指针一个是整形变量有不一样了,赋值也只能把地址赋给指针,不是把内存里面的数据给它

来源:https://ask.csdn.net/questions/325255

 

 

 

你可能感兴趣的:(memcpy内存拷贝和=直接赋值有什么区别)