| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3898 人关注过本帖
标题:IntelliSense: "const void *" 类型的值不能用于初始化 "const int *" 类型 ...
取消只看楼主 加入收藏
鲤鱼爱美丽
Rank: 8Rank: 8
来 自:冥界
等 级:蝙蝠侠
威 望:5
帖 子:288
专家分:843
注 册:2015-4-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
IntelliSense: "const void *" 类型的值不能用于初始化 "const int *" 类型的实体
程序代码:
//读取、排序和打印一列整型值
#include<stdio.h>
#include<stdlib.h>


//该函数由‘qsort’调用,用于比较整型值

int compare_integers (void const *a,void const *b)
{
    register int  const *pa = a;        //    4    IntelliSense: "const void *" 类型的值不能用于初始化 "const int *" 类型的实体
    register int  const *pb = b;         // 5       IntelliSense: "const void *" 类型的值不能用于初始化 "const int *" 类型的实体
    return *pa > *pb ? 1 : *pa < *pb ? -1 : 0;
}

int main(void)
{
    int *qarray;
    int n_values;
    int i;
    //观察共有多少个值
    printf("How many values are there? ");
    if(scanf("%d", &n_values) !=1 || n_values <= 0)
    {
        printf("Illegal number of values.\n");
        exit(EXIT_FAILURE);
    }

    //分配内存,用于存储这些值

    qarray = malloc( n_values * sizeof( int ));              // 6    IntelliSense: 不能将 "void *" 类型的值分配到 "int *" 类型的实体
    if(qarray == NULL)
    {
        printf("Can't get memory for that many values.\n");
        exit(EXIT_FAILURE);

    }

    //读取这些值
    for(i = 0; i < n_values; i += 1)
    {
        printf("?");
        if(scanf("%d", qarray + 1) != 1)
        {
            printf("Error reading value #%d\n",i);
            free(qarray);
            exit(EXIT_FAILURE);
        }
    }

    //对这些值排序

    qsort(qarray, n_values,sizeof( int ), compare_integers );


    //打印这些值

    for( i = 0; i < n_values; i += 1)
        printf("%d\n", qarray[i]);

    //释放内存并退出

    free(qarray);
    getch();
    return EXIT_SUCCESS;
}


输出  
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: include 
2015-09-26 17:08
鲤鱼爱美丽
Rank: 8Rank: 8
来 自:冥界
等 级:蝙蝠侠
威 望:5
帖 子:288
专家分:843
注 册:2015-4-8
收藏
得分:0 
回复 2楼 诸葛欧阳
又要如此的暴力的解决问题,泪奔中。。。

代码代码,带着的石头码!!!
2015-09-26 18:21
鲤鱼爱美丽
Rank: 8Rank: 8
来 自:冥界
等 级:蝙蝠侠
威 望:5
帖 子:288
专家分:843
注 册:2015-4-8
收藏
得分:0 
回复 4楼 rjsp
VS2010

代码代码,带着的石头码!!!
2015-09-26 23:28
鲤鱼爱美丽
Rank: 8Rank: 8
来 自:冥界
等 级:蝙蝠侠
威 望:5
帖 子:288
专家分:843
注 册:2015-4-8
收藏
得分:0 
回复 7楼 rjsp
编译器vs2010,创建win32窗口控制台下的(.c)文件,绝对的C,纯纯的C哦,不能再纯了

代码代码,带着的石头码!!!
2015-09-27 00:16
鲤鱼爱美丽
Rank: 8Rank: 8
来 自:冥界
等 级:蝙蝠侠
威 望:5
帖 子:288
专家分:843
注 册:2015-4-8
收藏
得分:0 
回复 10楼 rjsp
编译时能通过可是没有达到预想输出的结果

输入:
?3
?2
?1
1
2
3
应该是排好序输出的,可是我上面的输出明显错了,找不到原因,纠结半天才来问下的,
话说应该没错啊,可是就是得不到预想输出,难道是我的编译器问题。

代码代码,带着的石头码!!!
2015-09-28 11:16
鲤鱼爱美丽
Rank: 8Rank: 8
来 自:冥界
等 级:蝙蝠侠
威 望:5
帖 子:288
专家分:843
注 册:2015-4-8
收藏
得分:0 
问题已经解决
问题代码段:
for(i = 0; i < n_values; i += 1)
    {
        printf("? ");
        if(scanf("%d", qarray + 1) != 1)
        {
            printf("Error reading value #%d\n", i );
            free(qarray);
            exit(EXIT_FAILURE);
        }
    }
修正后:
for( i = 0; i < n_values; i += 1 ){
        printf( "? " );
        if( scanf( "%d", qarray + i ) != 1 ){
            printf( "Error reading value #%d\n", i );
            free(qarray);
            exit( EXIT_FAILURE );
        }
    }


谢谢各位的解答

代码代码,带着的石头码!!!
2015-09-28 12:03
鲤鱼爱美丽
Rank: 8Rank: 8
来 自:冥界
等 级:蝙蝠侠
威 望:5
帖 子:288
专家分:843
注 册:2015-4-8
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

代码代码,带着的石头码!!!
2015-09-28 12:10
鲤鱼爱美丽
Rank: 8Rank: 8
来 自:冥界
等 级:蝙蝠侠
威 望:5
帖 子:288
专家分:843
注 册:2015-4-8
收藏
得分:0 
回复 16楼 林月儿
学的不深,所以只能做到这一步了,花了半天时间分步断点调试才找到了出问题的代码段,您有什么好的建议可以跟我提,必定好好学习

代码代码,带着的石头码!!!
2015-09-28 15:55
快速回复:IntelliSense: "const void *" 类型的值不能用于初始化 "const int *" ...
数据加载中...
 
   



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

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