20150130 【 ARM 】 数据结构+顺序链表+GDB

17 篇文章 0 订阅
13 篇文章 0 订阅
GDB调试
1.安装
sudo apt-get install gdb
2.使用
在gcc编译程序时候加-g参数(-g会生成debug调试信息)

例子:main.c

void mycpy(char *p)
{
p=(char *)malloc(sizeof(char)*32);
strcpy(p, "hello world");
}

int main(void)
{
char *p = NULL;
mycpy(p);
printf("%s\n", p);
return 0;
}

编译:gcc -o main main.c -g
调试: gdb main
调试命令
list--l:列举代码
run---r运行
b 行号/函数名称 ---设置断点
step--s单步调试会进到调用的函数
next--n --单步调试但是不会进入函数
print---p ---输出

watch 变量(先设置断点--》运行run--》在断点处停止后设置观测点--》
      c继续运行(当要观测的变量发生变化时候就会停止))
  
set variable i=60设置变量
b 21 if i==50 条件断点(当i==50的时候就会在21行停止)

Gdb练习:(查找下面的错误并正确输出结果)(用gdb调试)

int array_sum(int m , int arr[m])
{
int sum = 0;
int i=0;
for(i=0; i<30; i++)
{
sum += arr[i];
}
return sum
}
int main(void)
{
int array[10]={1,2,3,4,5,6,7,8,9,11};

int sum = array_sum(10, array[10]);
printf("%d", sum);

return 0;
}



——————————————————————————————————————————————————————



c语言(数据链表)
数据:能被计算机存储和识别的信息(文字,图像,声音,视频)二进制
数据结构:数据逻辑结构,数据物理结构(数据存储结构),数据运算()
算法:解决问题的方法(时间,空间)----时间空间永远是对立的(牺牲空间换取时间)

顺序存储(顺序表)----数组(连续)

#define SIZE 10
typedef int Elemtype;

typedef struct Sqlist
{
Elemtype data[SIZE];
int length;
}Sqlist;

//1-创建
Sqlist* create_sqlist()
{
Sqlist *sqlist = (Sqlist*)malloc(sizeof(Sqlist));
sqlist->length = 0;
return sqlist;
}
//2-插入数据
bool insert_sqlist(Sqlist *sq, Elemtype data)
//3-查找数据
int local_sqlist(Sqlist *sq, Elemtype data);
//4-删除数据
bool delete_sqlist(Sqlist *sq , Elemtype data);
//5-显示数据
void display_sqlist(Sqlist *sq);


练习

从键盘插入输入一个正数插入把这个数插入到顺序表,输入负数把这个找出来删除(2把插入,-2把2删除)

创建一个顺序表实现输入数据插入到顺序表并且保证递增顺序




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值