C语言高级进阶
realloc函数使用学习内容
realloc函数可以用来减少指针指向的内存,如下示例trim函数会把字符串中开头的空白符删掉,并重新分配buffer指向内存的大小。学习产出
char * trim(char* phrase)
{
char* old = phrase;
char* new = phrase;
while(*old == ' ')
{
old++;
}
while(*old)
{
*(new++) = *(old++);
}
*new = '\0';
return (char*) realloc(phrase, strlen(phrase)+1);
}
int main()
{
char* buffer = (char*)malloc(strlen(" cat")+1);
strcpy(buffer, " cat");
printf("Before =%s, length = %d\n",buffer,strlen(buffer));
buffer = trim(buffer);
printf("After =%s, length = %d\n\n",buffer,strlen(buffer));
}
运行结果如下: