C文件处理问题!
void paixu(int *p, int n)
{
int i, j;
for (i = 0; i < n; i++)
{
for (j = i; j < n; j++)
{
if (p[j] < p[i])
{
int tmp = p[j];
p[j] = p[i];
p[i] = tmp;
}
}
}
}
int main()
{
int len[1];
int cons = 0;
// int max[100];
FILE *ps = fopen("f:\\a.txt", "r");
while (!feof(ps))
{
memset(len, 0, sizeof(len));
fgets(len, sizeof(int), ps);
cons++;
}
fclose(ps);
int *max = calloc(sizeof(int), cons);
cons = 0;
FILE *p = fopen("f:\\a.txt", "r");
while (!feof(p))
{
memset(len, 0, sizeof(len));
fgets(len, sizeof(int), p);
max[cons] = atoi(len);
cons++;
}
fclose(p);
FILE *pi = fopen("f:\\b.txt", "w");
paixu(&max, cons);
int i;
for (i = 0; i < cons; i++)
{
memset(len, 0, sizeof(len));
sprintf(len,"%d\n", max[i]);
fputs(len, pi);
}
fclose(pi);
return 0;
}
//使用int max[100] 这样的数组形式程序没问题,但是在堆里分配内存就错误!找不到原因,求解答!