为什么我将“无效转换从”void *“转换为”int **“错误?

时间:2013-11-29 09:51:49

标签: c

我的代码在使用“g ++ -Wall -pedantic -Wno-long-long -c main.c”进行编译时会显示此警告。我必须在这种模式下编译,因为它是一个功课,我们有一个应用程序可以纠正它们并使用这种编译模式。

  1. 错误:无效转换为“void”到“int **”[-fpermissive]
  2. 错误:无效转换为“void”到“int *”[-fpermissive]
  3. 错误:无效转换为“void”到“main(int,char * ):: VYSLEDEK ”[-fpermissive]
  4. 同样的错误仍在继续,因为我在我的程序中重新分配了很多。我试图改变那个realloc中的几乎所有内容,它仍然是相同的。

    部分代码:

        struct VYSLEDEK
    {
        int sirka;
        int vyska;
        int zacatek_x;
        int zacatek_y;
        int soucet;
    } *vysledek;
        int **matice,**soucty;
    
        .....       
    
        matice=(int**)malloc(1*sizeof(int*));
        matice[0]=(int*)malloc(1*sizeof(int));
        soucty=(int**)malloc(1*sizeof(int*));
        soucty[0]=(int*)malloc(1*sizeof(int));
    
        .....
    
    1.      matice=realloc(matice,naalokovano*2*sizeof(int*));
    2.      soucty=realloc(soucty,naalokovano*2*sizeof(int*));
    
        .....
    
            for (i=0;i<(naalokovano*2);i++)
            {
    3.            matice[i]=realloc(matice[i],sizeof(int));
    4.            soucty[i]=realloc(soucty[i],sizeof(int*));
            };
    
        .....
    
    5.      vysledek=realloc(vysledek,vysledku*sizeof(struct VYSLEDEK*));
    

    感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您已将malloc的结果转换为正确的类型。对realloc电话也一样。

顺便说一句:不要抱怨他们强迫你打开警告。我认为这是默认情况下最明智的做法,我总是至少使用-Wall -Werror