C语言中malloc的用法

Malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。

原型:extern void *malloc(unsigned int num_bytes);

包含头文件stdlib.h   malloc.h

在用malloc开辟数组空间时,使用 p=(char *)malloc(t*sizeof(char));开辟t个元素的数组空间,

发现sizeof (p)只有4个字节,是因为,sizeof(p)计算出来的是p指针的大小而不是开辟空间的大小。

void free(void *FirstByte);

在malloc分配空间用后,应该用free()释放分配的内存

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char *p; //      本意是想建立char p[100];的数组,但是却不能等同于p[100];
int t,len;
scanf(“%d”,&t);
p=(char *)malloc(t*sizeof(char));

if(p==NULL) return 0;   //如果内存分配失败,退出程序
memset(p,’a’,t*sizeof(char));   //实际建立的大小虽为sizeof(char)*t,若要使用sizeof(p)只能计算出p指针的大小
p[t-1]=’�’;
puts(p);
printf(“%xn”,p);
free(p);     // 用后释放空间
return 0;
}

0 条评论

What is 3 + 2 ?
Please leave these two fields as-is:
不答对这道小题,是不给通过的哦

昵称

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

沙发空缺中,还不快抢~