现在的位置: 首页 > 综合 > 正文

在c语言中实现数组的动态增长

2013年10月11日 ⁄ 综合 ⁄ 共 575字 ⁄ 字号 评论关闭

 在c语言中实现数组的动态增长

在c语言中实现数组的动态增长
原理:在c语言中数组下标访问可以看成指针偏移访问
1、对表进行检查,看看它是否真的已满
2、如果表确实已满,使用realloc()函数扩展表的长度,
并进行检查,确保realloc()操作成功进行。
3、在表中增加所需要的项目。
代码如下:
int current_element=0;
int total_element=128;
char *dynamic=malloc(total_element);
char *ptr;

void add_element(char c)
{
 if(current_element==total_element-1)
 {
  total_element *=2;
  ptr=(char*)realloc(dynamic,total_element);
  if(ptr==NULL)
  {
   printf("can't expand the table!/n");
   return -1;
  }
  else
   dynamic=ptr;
 }
 current_element++;
 dynamic[current_element]=c;
}
注:在实践中,不要把realloc()函数的返回值直接赋给字符指针,
如果realloc()函数失败,它会使该指针的值变成NULL,这样就无法
对现有的表进行访问。

抱歉!评论已关闭.