问题描述
建立两个java文件ReAlloc.javaTestReAlloc.java实现c中realloc()的功能提供另一个javaprogram:GenStrings.java用来为程序的输入用importjava.util.*;classGenStrings{staticfinalintMAX_STR_LEN=80;staticintnumStrs;staticintmaxSlen;Randomr=newRandom();voidprocess(){intsLen;for(inti=0;i<numStrs;i++){sLen=r.nextInt(maxSlen)+1;for(intj=0;j<sLen;j++){System.out.printf("%c",randChar());}System.out.println();}}charrandChar(){intiVal;charretVal;iVal=r.nextInt(maxSlen)%26+'a';retVal=(char)iVal;returnretVal;}publicstaticvoidmain(String[]args){if(args.length!=2){System.err.println("usage:javaGenStringsnumStrsmaxStrLen");System.exit(1);}numStrs=Integer.parseInt(args[0]);maxSlen=Integer.parseInt(args[1]);if(maxSlen>MAX_STR_LEN){System.err.println("ERROR:maximumstringlength="+MAX_STR_LEN);System.exit(1);}newGenStrings().process();}}最后显示结果如下:F:java>javaGenStringsusage:javaGenStringsnumStrsmaxStrLenF:java>javaGenStrings570hpkerarxvppssqjhmsbmsgodeicrvlefilalfsximljzwbkfazcavdvsufvpakesieapckiatxegrhunlumaktfhdcdtpgrbkeixdgixvwofttfaqqenjfmjharkcefhnkbkyjlszkptxhumrxyndozdiajayccruqhnuqaxehbaogihxbccsdkpageqknkiduiipmwuoilfjpiiswyjviqckpdwxquzomwdqpsjavacTestReAlloc.javajavaTestReAllocusage:TestReAllocchunkSizejavaTestReAlloc5hithereatestofstdin^DchunkSize:5totalbytesread:25totallinesread:5totalallocs:5javaGenStrings100080|javaTestReAlloc1chunkSize:1totalbytesread:42128totallinesread:1000totalallocs:42128javaGenStrings100080|javaTestReAlloc100chunkSize:100totalbytesread:41674totallinesread:1000totalallocs:417javaGenStrings100080|javaTestReAlloc1000chunkSize:1000totalbytesread:41421totallinesread:1000totalallocs:42javaGenStrings1000080|javaTestReAlloc1000chunkSize:1000totalbytesread:412568totallinesread:10000totalallocs:413javaGenStrings10000080|javaTestReAlloc1000chunkSize:1000totalbytesread:4151668totallinesread:100000totalallocs:4152tips:1.chunkSize为要分配的一块内存大小,假设是5时,当输入到第六个值需要再分配一个大小是5的内存,做法为生成出一个大小为10的内存,将6个值装入,下面再继续输入的值紧接着第六个值后面开始装入2.^D是用来结束输入3.EOL(EndOfLine)占用一个byte,windows下的EOL占用2个byte.所以上面输入的:问题补充:3.EOL(EndOfLine)占用一个byte,所以上面输入的:hithereatestofstdin一共是25个byte看错了,是下周二交老师不让用开发工具吗,要求手工代码,周二交作业,跪求答案
解决方案
解决方案二:
作业是不会有人帮你写的,这个需要自己多琢磨有某个地方不懂再来问,这样才会有人回答的。LZ加油吧
解决方案三:
该回复于2010-10-25 08:53:57被版主删除