为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Linux C语言指针与内存_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Linux C语言指针与内存

DavidChin
难度初级
时长 2小时 5分
  • gdb调试:gdb ./main
    查看全部
    0 采集 收起 来源:gdb工具的使用

    2016-06-25

  • gdb调试 gdb -g main.c -o main
    查看全部
    0 采集 收起 来源:gdb工具的使用

    2016-06-25

  • !,,,,丶,厌倦 ,,在,厌倦。,在:,,,一,,在这个!,,,,,、,在
    查看全部
  • (gdb) x/3d 内存起始地址 从起始地址开始以十进制显示3个值
    查看全部
  • gcc -g file.c 编译生成可用gdb调试的课执行文件<br><br> (gdb) l(list) 显示源代码<br><br> (gdb) break num 在num行设置断点<br><br> (gdb) start 开始调试(默认断点在main函数第一行)<br><br> (gdb) p a 打印变量a的值<br> (gdb) r(running) 开始调试并运行到断点所在行<br><br> (gdb) n 向下执行一行代码<br><br> (gdb) s 进入函数<br> (gdb) bt 查看函数堆栈<br> (gdb) f 1 跳到函数栈为1的函数 (gdb) kill 终止正在调试的程序 (gdb) q 退出gdb
    查看全部
    0 采集 收起 来源:gdb工具的使用

    2018-03-22

  • 源代码
    查看全部
  • 原代码
    查看全部
  • 因为gcc是智能分配地址的,同种类型的变量会放在相邻地址空间,所以会出现以下现象 程序代码: char str[]="hello"; char str2[10]; scanf("%s",str); printf("str=%s\n",str); printf("str2=%s\n",str2); 编译之后,输入: aaaaaaaaaaaaaaaaaaaaaaaaa 输出: str=aaaaaaaaaaaaaaaa str2=aaaaaaaaa str和str2会放在连续的地址空间中,str2没有输入的情况下也会输出str溢出的内容,但是str输出长度不等于定义的长度,这不知道是为什么?
    查看全部
  • 字符串是以'/000'结束的 堆、栈内存中的内容是以更改的,代码段内存中的内容不允许修改。 实例: char *str = "apple"; scanf("%s",str); 这是错误的,因为str指向的是代码段内存中的内容,该内容不能进行修改!!
    查看全部
  • 原本:<br> int a;<br> scanf("%d".&a);<br> scanf中的a前面是有取地址符的,代表把输入的数据放到该地址表示的内存空间中<br> 字符数组:<br> char str[10];<br> scanf("%s",str);<br> scanf中的str前不用加上取地址符,因为str本来表示的就是地址
    查看全部
  • 数组名称本身是一种指针常量,不可修改 int array[2]; int *p=array; array为常量指针,不可改变;p为变量指针,可以改变; 所以,array能做的事情,p也能做到,但反之则不行; PS:指针取值有两种方式,一种是*p,另一种是p[i] p[i]相当于以地址作为基点往下偏移i个变量地址 而赋值操作也可以由p+=3; *p=101;变成简单的p[3]=101;
    查看全部
    0 采集 收起 来源:指针运算

    2016-06-12

  • x/10d 起始地址:以4个字节为单位(因为是整型)往后取10个值 d-代表整型数字 实例 x/3d 0x7fffffffde14
    查看全部
  • 实例 虽然从来没用到过函数指针,不过说白了就是这样: int quadrate(int a); // main中 int a=3; int (*p)(int a); p = &quadrate; int s = (*p) (a); //最后就相当于p(a)
    查看全部
  • 1. int quadrate(int a);是一个函数 int (*pquadrate)(int a)=&quadrate;则是指向这个函数的指针! int s=(*pquadrate)(a)可以调用函数! 2.一个指针变量*q 不加*号:P q 取出自己地址中存储的值(一个地址)。
    查看全部
  • 栈是从栈顶下向下分配内存地址,先声明的内存地址大,后声明的小 静态变量、常量、全局变量保存地址都在数据段里
    查看全部

举报

0/150
提交
取消
课程须知
本课程是C语言中级课程,为了更好的学习效果: 1、需要有一定的C语言基础,如果没有基础的同学可以看《C语言入门》这门课。 2、本课程是在Linux环境下讲解,需要熟悉一些Linux命令。如果不了解的话可以在《Linux C语言编程基本原理与实践》这门课程中补充
老师告诉你能学到什么?
1、C语言中的指针是怎么回事 2、Linux下gdb调试工具是怎样使用的 3、指针与内存有着怎样的关系 4、数组与字符串之间的联系
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!