我使用realloc来动态增加字符指针(* seqA)的大小。还有另一种方法可以做得更好吗?如何动态改变字符指针大小?
这是我的代码部分:
while((holder=fgetc(fileA)) != EOF) {
lenA++;
temp=(char*)realloc(seqA,lenA*sizeof(char));
if (temp!=NULL) {
seqA=temp;
seqA[lenA-1]=holder;
}
else {
free (seqA);
puts ("Error (re)allocating memory");
exit (1);
}
}
什么是'seqA'是它的动态分配? – 2013-03-04 12:09:14
你可以做什么(提高执行速度并减少内存碎片)是**最小化**重新分配的次数。例如,每次加倍缓冲区大小并跟踪逻辑缓冲区的结束位置。 – 2013-03-04 12:11:05
出于兴趣,做'* sizeof(char)'从来没有任何意义 - 根据定义,这是1。字符在不同的系统中可以有不同的位数,但sizeof仍然是1. – Vicky 2013-03-04 12:21:04