为了账号安全,请及时绑定邮箱和手机立即绑定

怎么存放一个自增的数组,这个数组会一直增下去

怎么存放一个自增的数组,这个数组会一直增下去

xungeer29 2017-11-02 20:12:04
还有用什么来定义这个数组
查看完整描述

2 回答

已采纳
?
慕用4063026

TA贡献195条经验 获得超115个赞

#include<stdio.h> 

#include<stdlib.h> 

#define BLOCK_SIZE 20 

//

每次

长大

的时候都要去申请新的内存空间,拷贝需要花时间。

 

//may fail in memory restricted situation 

typedefstruct 

 

int *array; 

 

int size; 

} Array; 

//

创建新数组

 

Array array_create(intinit_size) 

 

Array a; 

 

a.array=(int*)malloc(sizeof(int)*init_size); 

 

a.size=init_size; 

 

return a; 

//

释放内存空间

 

void array_free(Array *a) 

 

free(a->array); 

 

a->size=0; 

 

a->array=NULL; 

//

得到当前数组的长度(不见得是元素的个数)

 

intarray_size(const Array *a) 

 

return a->size; 

//

获取该下标下的元素

 

int* array_at(Array *a,int index) 

 

void array_inflate(Array *a,intmore_size);//

函数申明

 

 

if(index>=a->size) 

 

 

 

array_inflate(a,(index/BLOCK_SIZE+1)*BLOCK_SIZE-a->size);//** 

 

 

return &(a->array[index]); 

void array_inflate(Array *a,intmore_size) 

 

inti; 

 

int *p=(int *)malloc(sizeof(int)*(a->size+more_size));//** 

 

for(i=0;i<a->size;i++) 

 

 

 

p[i]=a->array[i]; 

 

 

free(a->array);//** 

 

a->array=p;//** 

 

a->size+=more_size; 

intmain(intargc,charconst *argv[]) 

 

Array a=array_create(5); 

 

int j; 

 

for(j=0;j<10;j++) 

 

 

 

*array_at(&a,j)=j+1; 

 

 

for(j=0;j<10;j++) 

 

 

 

printf("%d 

 

",*array_at(&a,j)); 

 

 

printf("\n%d\n",array_size(&a)); 

 

array_free(&a); 

 

return 0; 

//

输出

 

//1 

 

 

 

 

 

 

 

 

 

10 

//20


查看完整回答
1 反对 回复 2017-11-03
  • xungeer29
    xungeer29
    会增加到超出int、string等可储存范围,这时候怎么存储
  • 慕用4063026
    慕用4063026
    首先改成bight可以存2亿,再不行只能转换成文件储存,不然我也想不到还有什么办法
?
慕瓜9220888

TA贡献868条经验 获得超0个赞

JYJIEXKBC

AYACQKDZJ

IAIRMZQTD

VKMJSOOFE

AYIXMNUOF

WEKCELELR

AIKZREOVQ

IDFKQQMTW

EDWIKDQND

HBHBNUDKT

EPVBNDFIY

IVRQGXANA

UHFFNANNX

EPYKPSZMV

NMEJDJDIB

KSDZSFTXD

OWYKPJCJC

MKDPRAHAK

BOGCYHURL

IXNTIOIPT

HJQPPZWKH

BTFOJDZGY

TOOWSFYLU

LAIOGJDTG

OSUNJWCMJ

RBAJPILIP

TLXJGJDJJ

LZJYREHOL

YGLNTMWJH

OGSRDWTWQ

RSYXIPUXE

WEJIXAXAD

XSUAWZMFZ

FHWWMZDIZ

ABDZLRTYB

VZLUGJQJG

SMXTVOLIV

EZSXJWAGW

AJLFLHERC

GFVHJCZWP

ECYZLYERL

JYTPOOREO

QBXAQWJOR

HMYQWUHBU

KMBTLQDAT

QLGMUBEBG

PBHNAVREP

TVOAMPVFF

XZXNVZPSP

JKDFHAMZD

MNJLAEXXA

DSNDIVOBR

UYAGLQDDT

KDWCIMWQX

LXCRJLVBB

MBJFROREX

NMLRHVSMU

HAGVRCAUL

DMLLAEYMG

SKHMCDXHY

FUAZFZDUY

CBRXDXEIA

WZKZFTUXR

DSUQADRVF

TSYDNROCD

ATIYHVWXU

YGWWCGJVW

SRNWMISQU

YBZSYSIMD

CHDTFZNQH

NCCOITDOM

PXDWLPWTB

PUNCFGAXO

PHQQWBVTA

OCZKQAKUP

DLINQKOFZ

KCYWCGAII

GZVUKUOEH

VTPJYSYIE

KIDCIVEBL

WEUKIMCKK

TNZVXADKC

SNZOXADJK

OSGFUEAUX

AIRONNGVL

LMEQCWCPL

UPKQICVBS

LGZLNQBOL

LWCEWDRVI

MKHXJCROH

TEGCYREHR

RCENTMJSC

UYAZBOFOL

WHDTJLZQR

PDCRDXAXK

NPVKWZXUK

WUJVKHNAD

ECEDPMFJX

IKIEJGJWJ

EZWCJREYJ

IWATFYBYV

QBNRDGJQJ

QBAPVGDTT

ZHJLKAEKU

TEVXPMSFI

KRNMHDZCF

KVXSLRVIG

FJVEJWTDL

GXZOXAAKK

WBDLRUHUN

DUJSERKXW

OSLXSVRUN

CDSYAXQXY

RZOASJQVR

AOKTPMTPZ

CDHPREVIL

NMCYQTNOV

PNMPKXAXR

SXCONAGAV

HDWVATADG

OTZWIXOLR

NCLXPFFIC

MKATTFPCP

KPVKMUNUN

ZXQWMMFIX

NIHXPCZCT

ZQGBXAOTJ

LCFRMZJMT

HFYSEBXEX

ITIBDWAAD

SHTVORLEY

MEGSEHNKU

SXGPXKAAR

BAJVXCPFC

CJLXTJDAD

THZJLRYIV

RYEZKDQJW

XSWVHVMTE

JUNKTGPUE

LZBAWIVIC

WUZBDZMPP

TLQILCFWZ

MQCLWLSFO

QRTPVEWZJ

UFFHZMMJJ

BUGCKEHKO

KSXHRIYIE

CUGGFDNRU

FJFEQMTZZ

JNZIKQDUN

VOZVUKNAX

HYBWYLSBB

WHDNTMJWC

YPSHGBHOX

ULEHDATND

GQPUQNQDX

BCFEDHUHP

IWPBJWDFI

OGIKZTJGH

HSGSDNAKL

RDTJZFCZT

STOKGTCPJ

SSLQWFAWN

CJCRXTNGD

YSLNZLQMZ

PNPOUNKNH

MEETCPCYF

MEGSSMQNR

OKMOHDKNX

SNTLDTUAN

ULEJSZNGM

ITGTPSFFI

OMODMSCUR

EIAWPCPVF

UIENSFSPY

KQOZFIBYV

TUJVXREQN

CGWRNAAIL

YJSKOERUO

OZMBHLCMW

查看完整回答
反对 回复 2021-10-20
?
元气满满GO

TA贡献92条经验 获得超16个赞

自行设计一个结构,类似栈队列,只是逻辑实现限制

查看完整回答
反对 回复 2017-11-03
  • xungeer29
    xungeer29
    会增加到超出int、string等可储存范围,这时候怎么存储
  • 2 回答
  • 0 关注
  • 2899 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信