为什么我获得未分配内存的读写权限?

Davidvarghese

我对以下代码段的行为感到困惑,

我已经声明了一个char指针,并将其指向已分配大小(1 * sizeof(char))的内存位置。

char *src ;
src = (char*)malloc(1 * sizeof(char));
strcpy(src,"Copy text");

即使我只分配了内存,1*sizeof(char)我也可以成功复制整个字符串,而且我也获得了"Copy text"存在的整个内存区域的读写权限

即下面的代码打印修改后的值"Copy RRxt"即,它打印

src[5] = 'R';
src[6] = 'R';
printf("%s \n" , src);

所以我很困惑为什么我没有"Segmentation fault"在上面的代码片段中出现错误。

注意:我使用的是GCC编译器v4.6.3

瓦伦丁·梅西耶(Valentin Mercier)

这是因为malloc有效,chunks of 16 or 32 bytes因为此策略使内存访问更加有效。因此,当您分配时1 bytenext 15 bytes可能是您的。

但是,我不建议您知道这种技巧,而是正确分配正确数量的字节。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我要获得未分配内存的读写权限?

来自分类Dev

为什么我的输出未分配值?

来自分类Dev

为什么我的虚拟函数未分配值?

来自分类Dev

如果const不分配内存,为什么我可以获得const的地址?

来自分类Dev

为什么我使用的内存多于分配的内存?

来自分类Dev

为什么我的代码会打印一个我尚未分配的值?

来自分类Dev

为什么仅读写文件权限时执行我的php-script?

来自分类Dev

Bot未分配角色。我遇到错误,缺少权限

来自分类Dev

如何处理我未分配的内存

来自分类Dev

为什么内存不分配?

来自分类Dev

Obj-C:为什么我的NSTextField子类会影响我尚未分配给它的对象?

来自分类Dev

C,为什么我的自定义释放函数给我“未释放的指针未分配”错误

来自分类Dev

如何使用未分配的内存?

来自分类Dev

访问未分配的内存C ++

来自分类Dev

什么是“未分配空间”?

来自分类Dev

为什么在dealloc方法中未分配对象?

来自分类Dev

为什么HTML输入提交未分配$ _POST数组值

来自分类Dev

为什么HTML输入提交未分配$ _POST数组值

来自分类Dev

为什么我的6TB硬盘驱动器显示为两个未分配的分区?

来自分类Dev

为什么我的6TB硬盘驱动器显示为两个未分配的分区?

来自分类Dev

为什么没有Pop_OS!即使我有未分配的空间,也显示“与Windows一起安装”选项?

来自分类Dev

当我的代码仅请求一个内存分配时,为什么valgrind报告两个内存分配?

来自分类Dev

为什么mmap无法分配内存?

来自分类Dev

为什么Rust的sort方法分配内存?

来自分类Dev

为什么hGetBuf,hPutBuf等分配内存?

来自分类Dev

在C中,内存分配失败,为什么?

来自分类Dev

为什么不分配大量内存呢?

来自分类Dev

为什么Rust的sort方法分配内存?

来自分类Dev

G Suite Drive API:为什么我无法获得特定文件的权限?

Related 相关文章

  1. 1

    为什么我要获得未分配内存的读写权限?

  2. 2

    为什么我的输出未分配值?

  3. 3

    为什么我的虚拟函数未分配值?

  4. 4

    如果const不分配内存,为什么我可以获得const的地址?

  5. 5

    为什么我使用的内存多于分配的内存?

  6. 6

    为什么我的代码会打印一个我尚未分配的值?

  7. 7

    为什么仅读写文件权限时执行我的php-script?

  8. 8

    Bot未分配角色。我遇到错误,缺少权限

  9. 9

    如何处理我未分配的内存

  10. 10

    为什么内存不分配?

  11. 11

    Obj-C:为什么我的NSTextField子类会影响我尚未分配给它的对象?

  12. 12

    C,为什么我的自定义释放函数给我“未释放的指针未分配”错误

  13. 13

    如何使用未分配的内存?

  14. 14

    访问未分配的内存C ++

  15. 15

    什么是“未分配空间”?

  16. 16

    为什么在dealloc方法中未分配对象?

  17. 17

    为什么HTML输入提交未分配$ _POST数组值

  18. 18

    为什么HTML输入提交未分配$ _POST数组值

  19. 19

    为什么我的6TB硬盘驱动器显示为两个未分配的分区?

  20. 20

    为什么我的6TB硬盘驱动器显示为两个未分配的分区?

  21. 21

    为什么没有Pop_OS!即使我有未分配的空间,也显示“与Windows一起安装”选项?

  22. 22

    当我的代码仅请求一个内存分配时,为什么valgrind报告两个内存分配?

  23. 23

    为什么mmap无法分配内存?

  24. 24

    为什么Rust的sort方法分配内存?

  25. 25

    为什么hGetBuf,hPutBuf等分配内存?

  26. 26

    在C中,内存分配失败,为什么?

  27. 27

    为什么不分配大量内存呢?

  28. 28

    为什么Rust的sort方法分配内存?

  29. 29

    G Suite Drive API:为什么我无法获得特定文件的权限?

热门标签

归档