C库函数 realloc重新分配内存

C 库函数 void *realloc(void *ptr, size_t size) 尝试重新调整之前调用 malloccalloc 所分配的 ptr 所指向的内存块的大小。

realloc函数说明

realloc函数使用

下面是 realloc() 函数的声明。

void *realloc(void *ptr, size_t size);

参数

  • ptr - 指针指向一个要重新分配内存的内存块,该内存块之前是通过调用 malloc、calloc 或 realloc 进行分配内存的。如果为空指针,则会分配一个新的内存块,且函数返回一个指向它的指针。
  • size - 内存块的新的大小,以字节为单位。如果大小为 0,且 ptr 指向一个已存在的内存块,则 ptr 所指向的内存块会被释放,并返回一个空指针。

返回值

该函数返回一个指针 ,指向重新分配大小的内存。如果请求失败,则返回 NULL。

realloc函数实例

下面的实例演示了 realloc() 函数的用法。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
   char *str;

   /* 最初的内存分配 */
   str = (char *) malloc(15);
   strcpy(str, "deepinout");
   printf("String = %s,  Address = %u\n", str, str);

   /* 重新分配内存 */
   str = (char *) realloc(str, 25);
   strcat(str, ".com");
   printf("String = %s,  Address = %u\n", str, str);

   free(str);

   return(0);
}

运行结果:

String = deepinout,  Address = 14139408
String = deepinout.com,  Address = 14139408

赞(2)
未经允许不得转载:极客笔记 » C库函数 realloc重新分配内存

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
assert.h
C标准库 assert.hC标准库 断言函数assert
ctype.h
C标准库 ctype.hC标准库 isascii函数C标准库 isalnum函数C标准库 isalpha函数C标准库 iscntrl函数C标准库 isdigit函数C标准库 isgraph函数C标准库 islower函数C标准库 isprint函数C标准库 ispunct函数C标准库 isspace函数C标准库 isupper函数C标准库 isxdigit函数C标准库 toascii函数C标准库 tolower函数C标准库 toupper函数
errno.h
C标准库 errno.h
float.h
C标准库 float.hC标准库 _clear87函数C标准库 _control87函数C标准库 _status87函数
limits.h
C标准库 limits.h
locale.h
C标准库 locale.h
math.h
C标准库 math.hC标准库 abs函数C标准库 acos函数C标准库 asin函数C标准库 atan函数C标准库 atan2函数C标准库 ceil函数C标准库 cos函数C标准库 cosh函数C标准库 exp函数C标准库 fabs函数C标准库 floor函数C标准库 fmod函数C标准库 frexp函数C标准库 hypot函数C标准库 labs函数C标准库 ldexp函数C标准库 log函数C标准库 log10函数C标准库 modf函数C标准库 pow函数C标准库 pow10函数C标准库 sin函数C标准库 sinh函数C标准库 sqrt函数C标准库 tan函数C标准库 tanh函数
setjmp.h
C标准库 setjmp.hC标准库 longjmp函数C标准库 setjmp函数
signal.h
C标准库 signal.hC标准库 raise函数C标准库 signal函数
stdarg.h
C标准库 stdarg.hC标准库 va_arg函数C标准库 va_end函数C标准库 va_start函数C标准库 vfprintf函数C标准库 vfscanf函数C标准库 vprintf函数C标准库 vsprintf函数C标准库 vscanf函数C标准库 vsscanf函数
stddef.h
C标准库 stddef.h
stdio.h
C标准库 stdio.hC库函数 snprintf复制字符串C标准库 clearerr函数C标准库 fclose函数C标准库 feof函数C标准库 ferror函数C标准库 fflush函数C标准库 fgetc函数C标准库 fgetchar函数C标准库 fgetpos函数C标准库 fgets函数C标准库 fopen函数C标准库 fprintf函数C标准库 fputchar函数C标准库 fputs函数C标准库 fread函数C标准库 freopen函数C标准库 fscanf函数C标准库 fseek函数C标准库 fsetpos函数C标准库 ftell函数C标准库 fwrite函数C标准库 getc函数C标准库 getchar函数C标准库 getche函数C标准库 gets函数C标准库 getw函数C标准库 perror函数C标准库 printf函数C标准库 putc函数C标准库 putchar函数C标准库 puts函数C标准库 putw函数C标准库 rename函数C标准库 remove函数C标准库 rewind函数C标准库 scanf函数C标准库 setbuf函数C标准库 setvbuf函数C标准库 sprintf函数C标准库 sscanf函数C标准库 tmpfile函数C标准库 tmpnam函数C标准库 ungetc函数C标准库 ungetch函数
stdlib.h
C标准库 stdlib.hC库函数 atoi字符串转为整数C库函数 malloc分配内存C库函数 realloc重新分配内存C库函数 calloc申请零值内存C库函数 free释放申请的内存C标准库 abort函数C标准库 atexit函数C标准库 atof函数C标准库 atol函数C标准库 bsearch函数C标准库 div函数C标准库 ecvt函数C标准库 exit函数C标准库 fcvt函数C标准库 gcvt函数C标准库 getenv函数C标准库 itoa函数C标准库 ldiv函数C标准库 lfind函数C标准库 lsearch函数C标准库 putenv函数C标准库 qsort函数C标准库 rand函数C标准库 random函数C标准库 randomize函数C标准库 srand函数C标准库 strtod函数C标准库 strtol函数C标准库 swab函数C标准库 system函数
string.h
C标准库 string.hC库函数 memset做内存填充C库函数 strcpy复制字符串C库函数 strncmp比较字符串C标准库 movmem函数C标准库 setmem函数C标准库 stpcpy函数C标准库 strcat函数C标准库 strchr函数C标准库 strcmp函数C标准库 strcmpi函数C标准库 strcspn函数C标准库 strdup函数C标准库 stricmp函数C标准库 strlen函数C标准库 strlwr函数C标准库 strncat函数C标准库 strncmpi函数C标准库 strncpy函数C标准库 strnicmp函数C标准库 strpbrk函数C标准库 strrev函数C标准库 strset函数C标准库 strstr函数C标准库 strtok函数C标准库 strupr函数
time.h
C标准库 time.hC标准库 asctime函数C标准库 clock函数C标准库 ctime函数C标准库 difftime函数C标准库 gmtime函数C标准库 localtime函数C标准库 time函数C标准库 tzset函数