所以我有一些代碼,可以很好地處理小文本文件,但與較大的崩潰。代碼的要點是獲取文件和參數n,解析代碼並將所有內容保存在大小爲n的卡盤中的二維數組中。因此,緩衝區[0] [0]到[0] [n-1]應該保存n個字符,並且緩衝區[1] [0]到[1] [n-1]應該保存下一個n塊,依此類推。我的代碼在文件只有幾個字的情況下工作,但是對於較大的文件,我得到一個錯誤,指出realloc():無效的下一個大小。任何想法爲什麼?這是我的代碼。realloc():無效的下一個大小
void bsort(int n)
{
int numwords= 0;
int numlets=0;
char ** buffer=(char**)malloc(numwords*n);
while (!feof(stdin))
{
char l= getchar();
if (l!= EOF)
{
if (numlets%n==0)
{
numwords=numwords+1;
buffer=(char**)realloc(buffer,numwords*n);
if(!buffer)
{
printf("Allocation error!");
}
buffer[numwords-1]= (char*) malloc (n);
buffer[numwords-1][numlets%n]=l;
// printf("%c", buffer[numwords-1][numlets%n]);
numlets=numlets+1;
}
}
int i,j;
for (i=0; i < numwords; i++)
{
for(j=0; j< n; j++)
{
printf("%c",buffer[i][j]);
}
}
什麼環境? – fazo 2012-02-17 19:22:19
使用linux終端 – user1161080 2012-02-17 19:37:17
你的文件有多大? – fazo 2012-02-17 19:44:10