内存管理函数
-
malloc 申请动态内存空间 viod *malloc(size_t size); 在堆上,需要手动释放。
-
free 释放动态内存空间 void free(void *ptr);释放堆上的内存
-
calloc 申请并初始化一系列内存空间 void *calloc(size_t nmemb, size_t size);初始为0。
-
realloc 重新分配内存空间 viod *realloc(void *ptr, size_t size);重新分配并拷贝。
(注明: 普通的局部变量在栈上。)
-
memset 使用一个常量字节填充内存空间 memset(ptr, 0, N * sizeof(int));
-
memcpy 拷贝内存空间 memcpy(prt2,prt1,N); free(ptr1);
-
memmove 拷贝内存空间
-
memcmp 比较内存空间
-
memchr 在内存空间中搜索一个字符文章来源:https://www.toymoban.com/news/detail-471507.html
根据用户输入动态扩容内存的例子:文章来源地址https://www.toymoban.com/news/detail-471507.html
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
int num, i;
int count = 0;
int *ptr = NULL;
do
{
printf("input number: ");
scanf("%d", &num);
count++;
ptr = (int *)realloc(ptr, count * sizeof(int));
if (ptr == NULL)
{
exit(1);
}
ptr[count - 1] = num;
} while (num != -1);
for (i = 0; i < count; i++)
{
printf("%d ", ptr[i]);
}
putchar('\n');
free(ptr);
return 0;
}
到了这里,关于C语言-内存管理函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!