malloc()函数可以开辟空间,free()函数释放空间
#include2、calloc()函数的使用#include int main() { int* p = (int*)malloc(10 * sizeof(int));//向内存申请10个整形的空间,由于malloc()返回值为void*,所以需要强制转换 if (p == NULL) { //如果未创建成功,则打印错误原因 printf("%sn", strerror(errno)); } else { //正常使用空间 int i = 0; for (i = 0; i < 10; i++) { *(p + i) = i; } for (i = 0; i < 10; i++) { printf("%d ", *(p + i)); } } //当动态申请的空间不再使用时,就将它还给操作系统 free(p); p = NULL; return 0; }
该函数的功能是为num个大小为size的元素开辟一块空间,并且把空间的每一个字节初始化为0
#include3、realloc()函数的使用#include int main() { int *p = (int*)calloc(10, sizeof(int)); int i = 0; for (i = 0; i < 10; i++) { printf("%d ", *(p + i)); } return 0; }
功能:调整动态内存开辟空间的大小
int main()
{
int* p = (int*)malloc(20);
if (p == NULL)
{
printf("%sn", strerror(errno));
}
else
{
int i = 0;
for (i = 0; i < 5; i++)
{
*(p + i) = i;
}
}
int* p2 = realloc(p, 40);
int i = 0;
for (i = 0; i < 10; i++)
{
printf("%d ", *(p2 + i));
}
return 0;
}
realloc()也可以开辟空间
int main()
{
int* p = realloc(NULL, 40);//功能和malloc()相似
return 0;
}



