| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3898 人关注过本帖
标题:IntelliSense: "const void *" 类型的值不能用于初始化 "const int *" 类型 ...
只看楼主 加入收藏
鲤鱼爱美丽
Rank: 8Rank: 8
来 自:冥界
等 级:蝙蝠侠
威 望:5
帖 子:288
专家分:843
注 册:2015-4-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:19 
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: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:7 
强制类型转换

一片落叶掉进了回忆的流年。
2015-09-26 17:46
鲤鱼爱美丽
Rank: 8Rank: 8
来 自:冥界
等 级:蝙蝠侠
威 望:5
帖 子:288
专家分:843
注 册:2015-4-8
收藏
得分:0 
回复 2楼 诸葛欧阳
又要如此的暴力的解决问题,泪奔中。。。

代码代码,带着的石头码!!!
2015-09-26 18:21
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54066
注 册:2011-1-18
收藏
得分:7 
我怀疑你用的不是C编译器,而是C++编译器。
2015-09-26 18:45
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
这应该属于向下转换,不能自动进行

一片落叶掉进了回忆的流年。
2015-09-26 19:30
鲤鱼爱美丽
Rank: 8Rank: 8
来 自:冥界
等 级:蝙蝠侠
威 望:5
帖 子:288
专家分:843
注 册:2015-4-8
收藏
得分:0 
回复 4楼 rjsp
VS2010

代码代码,带着的石头码!!!
2015-09-26 23:28
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54066
注 册:2011-1-18
收藏
得分:0 
以下是引用鲤鱼爱美丽在2015-9-26 23:28:09的发言:
VS2010

你连你用的是c还是c++都不知道?你贴个vs2010我也没法知道你用的是c还是c++呀?因为它即可以编译c也可以编译c++
2015-09-26 23:55
鲤鱼爱美丽
Rank: 8Rank: 8
来 自:冥界
等 级:蝙蝠侠
威 望:5
帖 子:288
专家分:843
注 册:2015-4-8
收藏
得分:0 
回复 7楼 rjsp
编译器vs2010,创建win32窗口控制台下的(.c)文件,绝对的C,纯纯的C哦,不能再纯了

代码代码,带着的石头码!!!
2015-09-27 00:16
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:7 
不知道你想幹什麼

授人以渔,不授人以鱼。
2015-09-27 13:46
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54066
注 册:2011-1-18
收藏
得分:0 
以下是引用鲤鱼爱美丽在2015-9-27 00:16:56的发言:

编译器vs2010,创建win32窗口控制台下的(.c)文件,绝对的C,纯纯的C哦,不能再纯了
我用 gcc4.8.1,以C方式,编译通过(除了那个不知所谓的getch(),但这和你的问题无关);
我用 vc2008,以C方式,编译通过(除了那个不知所谓的getch(),但这和你的问题无关);
我请人用 vc2010,以C方式,编译通过(除了那个不知所谓的getch(),但这和你的问题无关)。
2015-09-28 08:30
快速回复:IntelliSense: "const void *" 类型的值不能用于初始化 "const int *" ...
数据加载中...
 
   



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

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