在c语言中如何实现数组的动态输入?

在c语言中如何实现数组的动态输入?,第1张

头文件malloc.h

使用malloc来申请一个初始地址空间。

然后在循环输入的过程中不断检查初始空间是否已满,满了就是使用realloc来扩展地址空间。

最后,如申请的地址不需要使用了,且程序没有结束,需要用free来释放。

另外,使用malloc或realloc申请时,需要先判断下返回值是否为空,如有异常申请失败,用空指针直接使用,会造成程序错误。

下面简单示范:(初始申请2个字节,之后每次输入字符扩展1个字节,回车结束输入)

#include <stdio.h>

#include <malloc.h>

int main()

{

  int len=2

  char *a=NULL,*aSave=NULL,c

  a=(char*)malloc(sizeof(char)*len)

  if(!a)

      return 1

  a[0]=0

  while(1)

  {

      c=getchar()

      if(c==10)

          break

      if(a[0]==0)

          a[0]=c,a[1]=0

      else

      {

          aSave=realloc(a,sizeof(char)*len)

          if(!aSave)

              return 1

          a=aSave

          a[len-2]=c,a[len-1]=0

      }

      len++

  }

  printf("输入的字符串数组是:\n%s\n",a)

  free(a)

  return 0

}

用递归来遍历:

privatevoid FindControl(Controlc){if(c is TextBox){//控件是TextBox}elseif (c is DropDownList){ //控件是DropDownList}if(c.Controls != null){foreach (Control xin c.Controls){FindControl(x) }}} 调用: this.FindControl(this)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11825472.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存