错误:无法将类型“ void *”的值分配给类型“ int **”的实体

我正在学习有关动态内存分配在C我搜索这里同样的问题,找到解决方案,说这是对C ++编译器错误。我不明白的是为什么我在使用.c扩展而不是.cpp时出现此错误。我正在使用Visual Studio Express 2012。

如果有人需要,这是我编写的代码。这是一个用于输入矩阵(输入)并将其写入屏幕(输出)的简单程序:

#include <stdio.h>
#include <stdlib.h>
void main()
{
    int **a;
    int i,j,n,m;
    printf("Enter matrix dimensions:\n");
    scanf("%d%d", &n,&m);
    printf("Enter matrix:\n");
    a=malloc(n*sizeof(int*));
    for (i=0; i<n; i++)
    {
        a[i]=malloc(m*sizeof(int));
        for (j=0; j<m; j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    printf("Matrix is:\n");
    for (i=0; i<n; i++)
    {
        for (j=0; j<m; j++)
        {
            printf("%d ",a[i][j]);
        }
        putchar('\n');
    }
}

注意:我使用相同的编译器在C中执行了其他程序(没有动态内存分配),一切都很好。

编辑和更新(结论):
我结合了从莫斯科的弗拉德(Vlad)希万什·贾格(Shivansh Jagga)得到的两个答案,这解决了这个问题Vlads的回答有助于编译,而Shivanshs摆脱了错误,但是我必须说,正如注释中所建议的那样,malloc不需要类型转换,程序可以处理该错误,只是跳过了它。

我看到Shivansh Jagga的回答由于某种原因被删除了。基本上,他的回答是要消除错误,您需要转到:
项目>属性> C / C ++>常规> SDL检查>否。

来自莫斯科的弗拉德

很明显,您正在将程序编译为C ++程序。

在C语言中,void *可以将类型的指针分配给任何其他类型的对象指针,而无需显式转换。

要将其编译为C程序,您应该执行以下操作。

据我记得,您应该从菜单中选择项目Project,然后选择类似Project properties(J没有IDE的英文版),然后在面板中选择C / C ++-> Additional,然后在右侧面板将项目编译为C(/ TC)

考虑到根据C标准,没有参数的函数main应该声明为

int main( void )

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有人可以找到错误“无法将“void”类型的值分配给VScode中“int”类型的实体的原因吗?

IntelliSense:无法将类型为“ void”的值分配给类型为“ double”的实体

无法将类型为int的值分配给类型为node的实体

“int”类型的值不能分配给“Node<int> *”C/C++(513) 类型的实体

无法将类型'()-> Void'的值分配给'(()-> Void)!'

无法将类型“ Int”的值分配给类型“ Int?”

从不兼容类型'int(^ __ strong)(void)'分配给'int'

无法将“Int”类型的值分配给“String”类型

错误:无法将类型“ double *”的值分配给类型“ double”的实体

快速操场中的错误:无法将类型“Int”的值分配给类型“[Int]”

错误:无法将“List<dynamic>”类型的值分配给“List<int>”类型的变量

获取“无法将类型 'CLLocationDegrees'(又名'Double')的值分配给类型'Int'”错误(Swift 4)

为什么我会从“不兼容类型'void *'”分配到“分配给'int *'”错误?

无法将类型'((UIViewController ?, NSError?)-> Void'的值分配给类型'((UIViewController ?, Error?)-> Void)?

不兼容的指针类型从'int(int *)'分配给'void(*)(void *)'

类型'null'不能分配给类型'()=> void | 空值'

收到错误“类型'void'无法分配给类型'ReactNode'”

错误:无法将参数类型“void Function(bool)”分配给参数类型“void Function(bool?)”

Swift 4:无法将类型'(_)-> Void'的值分配给类型'(()->())吗?'

将大值分配给int数据类型

Swift CoreData-无法将类型'Int'的值分配给类型'Int16'

从不兼容类型'void(^ __ strong)(int,const char *,int)'分配给'void(*)(int,const char *,int)'

无法将“ int”类型的值分配给“ String”类型的值?

错误:无法将参数类型“ void Function(ImageInfo,bool)”分配给参数类型“ ImageStreamListener”

TypeScript错误:无法将类型“ void”分配给类型“ boolean”

错误:无法将参数类型“ Future”分配给参数类型“ void Function()”

swift无法将“Int”类型的值分配给“String”类型

无法将类型“ Int”的值分配给类型“ String?” 在(cellForRowAt)中使用Tableview

无法将类型'myFuncDef *'分配给'void(*)(double *,double *)'