VSCode调试C代码(undefined reference to/查看指针存储值/结构体分配内存)

VSCode调试C的记录

  1. 报错:undefined reference to “ ”。
    reason 1: 多个文件直接编译时,虽然有头文件,但没有找到.c文件。因此,在tasks.json中的args:[ ]中加入.c文件的路径。
    reason 2: 多个文件编译时,在头文件中声明了外部结构体变量,但在.c文件中忘记定义。
  2. 调试过程中如何查看指针存储的具体数值
    监视区输入如下:
   * p @ n

其中:p表示要查看的指针,n表示要查看存储其中的变量的个数。(指针一般与数组一起使用,因此可以理解为要查看的数组的前n个数)
查看二维指针:
p为二维指针,其动态内存分配为:

p = (double **)malloc(m*sizoef(double *);
for(int i = 0; i < m; i++)
{
    p[i] = (double *)malloc(n*sizeof(double));
}

其中:可以理解为p指向m个一维指针,每个一维指针又指向n个double型变量。
查看二维指针p:

   * (p[i]) @ n

其中:i与上述动态内存分配时i的含义相同。
3. 为结构体动态分配内存

struct type_struct *p;//定义结构体指针
p=(struct typr_struct *)malloc(sizeof(type_struct));//动态分配内存

结构体中的指针变量也需要分配内存

p->x=(double *)malloc(sizeof(double));

x表示指针成员,根据具体需要存储的数值进行内存分配即可。
4. 一些小细节

  • 变量的类型一定要前后统一,否则很容易出现错误;
  • memset这个函数的头文件为#include <string.h>,并且对象为char类型,初始化为int类型时会出错,但初始化为0时可以使用(特例)。
  • 指针分配内存很重要。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值