看贴图:

linux系统中main函数参数内存分布

存放argv值的地址是:0xbfffef44


linux系统中main函数参数内存分布

gdb调试中给出2个参数是:Hello   World

argc应该是3    argv下标从0到2    argv[3]=NULL是char *数组的终止标志

从argv[4]到argv[75]是指向环境变量表的char *数组   argv[75]是终止标志


显示出全部的char *数组

linux系统中main函数参数内存分布


分析内存分布:

首先:存放argv值地址是:0xbfffef44       argv值:0xbfffefd4

            存放argv[0]值地址:0xbfffefd4       从此地址开始是一个连续的char *数组(从0到75)  argv[75]的地址最大是:0xbffff100

            存放实际字符串地址应该是从0xbffff1d6开始,地址原来越大。


这个0xbffff1d6比0xbffff100大出了0xd6个字节,显然char*数组和字符串数组是不连续的。之前调试过windows的是连续的。




相关文章:

  • 2021-10-09
  • 2021-08-10
  • 2021-05-10
  • 2021-08-21
  • 2021-05-03
  • 2022-12-23
猜你喜欢
  • 2021-10-10
  • 2021-09-07
  • 2022-12-23
  • 2021-10-02
  • 2021-06-26
  • 2021-06-20
相关资源
相似解决方案