1

以下のコードで何が間違っているのか手がかりがありません..正常にコンパイルすると、これが私が受け取るエラーです

blob.c: 関数 'main' 内: blob.c:19:14: 警告: 'void *' ポインターの逆参照 [デフォルトで有効] blob.c:19:14: エラー: メンバー 'x' の要求が何かではない構造体または共用体

#include<stdio.h>
#include<stdlib.h>

typedef struct {

int*x;

}TIM;


main(){
    void*o;

    TIM * a;
    a=(TIM*)malloc(sizeof(TIM));
    a->x=(int*)malloc(sizeof(int));
    *(a->x)=10;
    o=(void*)a; 
    free((TIM*)o->x);

    free((TIM*)o);

}

誰かが私を正しい方向に向けてくれませんか。ヒントは大歓迎です。

4

2 に答える 2

1

あなたの声明

free((TIM*)o->x);

->はキャストよりも優先順位が高いため失敗します。これは、コンパイラがそれを処理する方法がわからないためo宣言されているためです。void*

于 2013-10-03T05:28:16.797 に答える