malloc函数的使用

调用被调函数,将主函数中动态内存分配的内存中的数据放大十倍

malloc动态分配了1字节的内存空间,最多能存放的整数是255

int型变量并不是一定占4字节。C语言从来没有规定一个整型必须要强制占几字节。C语言只规定了:短整型的长度不能大于整型,整型的长度不能大于长整型。至于具体占多少字节,不同的计算机是有差别的,这主要由计算机的操作系统决定,或者说由安装在该系统上的编译器的编译规则决定。所以malloc后面直接写“4”不是很好,最好的方式为sizeof(int)

int *p = malloc(sizeof(int));​​
#include<stdio.h>
#include<stdlib.h>

void Decuple( int *i )
{
    *i = (*i) * 10 ;
    return ;
}
int main (void)
{
    int *p = malloc(4) ;//4表示分配了4字节的动态内存。直接写“4”的可移植性很差。如果别的计算机给int型变量分配的是8字节,这时候如果还写“int *p=malloc(4); ”,代码也能通过编译,但是会有4字节因“无家可归”而直接“住进邻居家”。造成的后果是后面内存中的原有数据被覆盖
    //int *p = malloc(sizeof(int));​​
    *p = 10 ;
    Decuple(p) ;
    
    printf ("*p = %d \n",*p);
    
    return 0 ;
}

在这里插入图片描述

以上程序借鉴于《手把手教你C语言》一书中的第十三章中的13.7.3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值