指针与malloc 动态内存申请 栈和堆的差异

基础知识

malloc 函数了解

这行代码使用了malloc()函数在堆上分配内存。变量p被赋予指向已分配内存块的指针。

分配的内存大小由变量i决定。malloc()函数需要一个表示所需字节数的参数,因此i必须是一个整数值,代表所需的字节数。

由于malloc()返回一个无类型指针(void *),返回的指针被强制转换为char *指针类型来与变量p的类型相匹配。

需要记住,在不再需要使用分配的内存时,一定要释放它以防止内存泄漏。通常通过调用free(p)来完成,其中p是先前由malloc()返回的指针。

scanf("%c",&c)
这行代码使用了scanf()函数获取一个字符类型的输入,将其存储到变量c中。

具体来说,scanf()函数是C语言标准库中的一个输入函数,它可以从控制台或文件中读取数据。该函数的原型如下:

int scanf(const char *format, ...);
在本例中,第一个参数是格式字符串"%c",用于指示scanf()函数将要输入一个字符。格式字符串由百分号(%)和占位符组成,每个占位符都对应一个待读入的变量。在这种情况下,%c 占位符表示要读取单个字符。

第二个参数是一个指向变量c的指针,因此&c表示将字符输入到变量c中。

需要注意的是,scanf()函数不会自动跳过空格和换行符等空白字符,而是将其作为输入数据的一部分。如果希望跳过这些字符,则需要在格式字符串中使用空格占位符(" ")或转义字符(\n),例如:

scanf(" %c", &c);   // 加上空格占位符
这样就可以忽略输入时可能存在的空格和换行符等空白字符。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值