2019-04-23关于数据结构

程序=数据结构+算法

数据结构
了解malloc与realloc的用法

申请一块存储:
一个空指针 type * p;
p = (类型)mallo(sizeof(type));
原基础上加一储存,设原来已有n个元素:
p = (type
) realloc(p,(n+1)sizeof(int));
无限申请内存:

int mian (){
  int* p;
  //int size=0;
    while(1){
          int num;
          scanf("%d",&num);
          if(p==NULL){
              p = (int*)malloc(sizeof(int));
                ++size;
           }else{
                p=(int*)realloc(p,(size+1)*sizeof(int));
                ++size;
           }
    }
}

注:realloc(NULL,size) = malloc(size)
realloc(p,0) = free(p);

无限申请内存并存入元素,直到ctrl+d跳出:

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int main(){
    int* p=NULL;
    int size=0;
    while(true){
            int num;
            if(EOF == scanf("%d",&num)) break;
           // if(p==NULL){
            //   p = (int*)malloc(sizeof(int));
            //    *p = num;
            //    ++size;
            //}else{
                p = (int *)realloc(p,(size+1)*sizeof(int));
                p[size] = num;
                ++size;
            //}
    }
}
倒序遍历上面的存储
      for(int i=0;i<size;++i){
          printf("%d ",p[size-1-i]);
      }
      printf("\n");
      free(p);
      p=NULL;
      return 0;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容