エラー:不完全な型へのポインタのデリファレンス エラー解決
2022-03-02 19:39:27
このエラーは不完全な型を指しており、通常、構造体ポインタ型宣言の定義時に発生します。本当の原因は、構造体が全く定義されていないか、構造体を定義しているヘッダーファイルが正しく参照されていないことにあります。
<スパン この問題を解決するには、2つの方法があります。
<スパン 1. 構造を定義したヘッダーファイルをインクルードする
<スパン 2. 構造体が h ファイルではなく c ファイルで定義されている場合、h ファイルで構造体を定義し、.h ファイルをインクルードするこの方法が推奨されます。
3. エラーを報告したファイルに直接構造体をコピーする ( を使用することは推奨されません。 )
例
test3.
#include<stdio.h>
int main(int argc, char **argv)
{
call_num();
}
test2:
#include <stdio.h>
void call_num()
{
struct zt_t *p = get_num();
p->x = 356;
p->y = 325;
show(p);
}
test1:
#include <stdio.h>
struct zt_t {
int x;
int y;
};
struct zt_t num;
struct zt_t * get_num()
{
num.x = 123;
num.y = 456;
return #
}
void show(struct zt_t *buf)
{
printf("%s %d %d %d \n",__func__,__LINE__ ,buf->x, buf->y);
}
コンパイルの結果は次のようになります。
以下のように修正します。
test3.
#include <stdio.h>
#include "test.h"
int main(int argc, char **argv)
{
call_num();
}
test2:
#include <stdio.h>
#include "test.h"
void call_num()
{
struct zt_t *p = get_num();
p->x = 356;
p->y = 325;
show(p);
}
test1:
#include <stdio.h>
#include "test.h"
struct zt_t num;
struct zt_t * get_num()
{
num.x = 123;
num.y = 456;
return #
}
void show(struct zt_t *buf)
{
printf("%s %d %d %d \n",__func__,__LINE__ ,buf->x, buf->y);
}
test.h
#ifndef __TEST_H__
#define __TEST_H__
struct zt_t {
int x;
int y;
};
struct zt_t * get_num();
#endif
コンパイルの結果は以下のようになります。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例