标题:"void *" 类型的值不能用于初始化 "int *" 类型的实体
取消只看楼主
Feiyiyi1
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2017-10-22
结帖率:62.5%
 问题点数:0 回复次数:0 
"void *" 类型的值不能用于初始化 "int *" 类型的实体
程序代码:
#include<stdio.h>
#include<string.h>
#include <stdlib.h>
#define  _CRT_SECURE_NO_WARNINGS
void swap(int *a, int *b)
{
    int tmp = *a;
    *a = *b;
    *b = tmp;
}
void pupple(int *p, int n)
{
    int i;
    int j;
    for (i = 0; i < n; i++) {
        for (j = 1; j < n - i; j++) {
            if (p[j - 1]>p[j])
                swap(&p[j - 1], &p[j]);
        }
    }
}
int main()//在堆中建立一个动态数组,并对文件内容进行排序
{
    char buf[100];
    int index = 0;
    FILE *p = fopen("E:\\temp\\a.txt", "r");//第一次打开a.txt目的是知道文件有多少行
    
    while (!feof(p)) {
        memset(buf, 0, sizeof(buf));//每次读取文件一行前把这个buf清空
        fgets(buf, sizeof(buf), p);//从文件中读一行
        index++;//只计数v   
    }
    fclose(p);
    int *array = calloc(sizeof(int), index);//在堆中建立一个动态数组,动态数组的成员数量和a.txt文件的行一样多

    FILE *p1 = fopen("E:\\temp\\a.txt", "r");
    index = 0;//计数器从0重新开始
    while (!feof(p1)) {
        memset(buf, 0, sizeof(buf));//每次读取文件一行前把这个buf清空
        fgets(buf, sizeof(buf), p1);//从文件中读一行
        index++;//只计数v   
    }
    fclose(p1);
    pupple(array, index);//将数组排序
    p1 = fopen("E:\\temp\\b.txt", "w");
    int i;
    for (i = 0; i < index; i++) {
        memset(buf, 0, sizeof(buf));
        sprintf(buf, "%d\n", array[i]);//数组成员转化为字符串
        fputs(buf, p1);
    }
    fclose(p1);
    getchar();
    return 0;
}

搜索更多相关主题的帖子: 类型 int 文件 index sizeof 
2018-05-14 21:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-486921-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.397224 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved