我使用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