Cの構造体にポインタを割り当てるにはどうすればよいですか?

ジョン・フレンズソン
#include <stdlib.h>

struct foo{
        int a;
};

int main(int argc, char * * argv){
        struct foo * bar = malloc(sizeof(struct foo));
        free(bar);
        return EXIT_SUCCESS;
}

これは、標準に従って未定義の動作を引き起こしませんか?もしそうなら、私は代わりに標準を遵守するために何をすべきですか?

https://stackoverflow.com/a/1241314/13959281

0___________

malloc失敗してbar割り当てられるどうなるかという質問の場合、NULL答えは次のとおりfreeです。が呼び出されても何も起こりませんfree関数は、渡されたポインタがであるかどうかをチェックしますNULLポインタがNULLない場合、アクションは実行されません。したがって、ここにはUBはありません。

一般的な注意として:タイプの代わりに実際のオブジェクトを使用すると、より安全になります(または少なくともエラーが発生しにくくなります)。

struct foo * bar = malloc(sizeof(*bar));

#編集#

OPのコメントは質問を明確にします。C標準では、オブジェクトタイプ(関数ポインターではない)へのポインターを任意のタイプのポインターに変換void *および変換できることが保証されているため、実装内のポインターのサイズは重要ではありませんvoid *それが実際にどのように行われるかは、実装に任されています。したがって、C規格で保証されているため、100%安全です。

ここに画像の説明を入力してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

構造体の配列でintポインタメンバーを初期化して動的に割り当てるにはどうすればよいですか?

分類Dev

割り当て関数の外部から構造体ポインタの値にアクセスするにはどうすればよいですか?

分類Dev

Cの構造体へのポインタを逆参照するにはどうすればよいですか?

分類Dev

C:構造体:構造体のインスタンスを作成するときに配列のサイズを割り当てるにはどうすればよいですか?

分類Dev

構造体へのポインタの配列を作成するにはどうすればよいですか?

分類Dev

ColdFusion <2016の構造体で割り当て順序を保持するにはどうすればよいですか

分類Dev

構造体が参照されている他の構造体の存続期間を超えないように、生のポインターを使用して構造体でPhantomDataを使用するにはどうすればよいですか?

分類Dev

Cのプロセス間でポインターを使用して構造体を共有するにはどうすればよいですか?

分類Dev

cの構造体内の構造体配列に値を割り当てるにはどうすればよいですか?

分類Dev

参照によってSwift構造体を割り当てるにはどうすればよいですか?

分類Dev

構造体にnullポインタを作成するにはどうすればよいですか?

分類Dev

構造体へのポインタを持つ構造体フィールドを取得するにはどうすればよいですか?

分類Dev

intの配列を含む構造体を構造体の配列に正しく割り当てるにはどうすればよいですか?

分類Dev

構造体初期化子でポインタ型を使用するにはどうすればよいですか?

分類Dev

マップで構造体ポインタを使用するにはどうすればよいですか?

分類Dev

構造体にある関数ポインタを使用して関数を実行するにはどうすればよいですか?(C)

分類Dev

jsonb列をスキャンして構造体/ポインタのスライスにするにはどうすればよいですか?

分類Dev

構造体を使用して行列を割り当てるにはどうすればよいですか?

分類Dev

スタックに割り当てられた構造体のmallocされた属性を解放するにはどうすればよいですか?

分類Dev

その配列へのポインタを使用して、構造体の配列に含まれる構造体のフィールドにアクセスするにはどうすればよいですか?[C ++]

分類Dev

構造体のポインタ配列にある構造体をcの別の構造体に直接コピーするにはどうすればよいですか?

分類Dev

配列の内容を使用可能な変数に割り当てるカスタム構造体を作成するにはどうすればよいですか?

分類Dev

従来のCAPIを呼び出すときに、最新のC ++で構造体へのポインターを他の構造体へのポインターに正しくキャストするにはどうすればよいですか?

分類Dev

構造体へのポインタに対して操作を実行するにはどうすればよいですか?

分類Dev

Cのtypdef構造体内の配列に値を割り当てるにはどうすればよいですか?

分類Dev

C ++で構造体へのポインターのベクトルを使用するにはどうすればよいですか?

分類Dev

ポインターを含む構造体へのポインターにcudaMalloc / cudaMemcpyを使用するにはどうすればよいですか?

分類Dev

Cでmalloc()を使用して構造体の配列を割り当てるにはどうすればよいですか?

分類Dev

goのタグではなく、構造体のタイプを使用して構造体を再整列するにはどうすればよいですか?

Related 関連記事

  1. 1

    構造体の配列でintポインタメンバーを初期化して動的に割り当てるにはどうすればよいですか?

  2. 2

    割り当て関数の外部から構造体ポインタの値にアクセスするにはどうすればよいですか?

  3. 3

    Cの構造体へのポインタを逆参照するにはどうすればよいですか?

  4. 4

    C:構造体:構造体のインスタンスを作成するときに配列のサイズを割り当てるにはどうすればよいですか?

  5. 5

    構造体へのポインタの配列を作成するにはどうすればよいですか?

  6. 6

    ColdFusion <2016の構造体で割り当て順序を保持するにはどうすればよいですか

  7. 7

    構造体が参照されている他の構造体の存続期間を超えないように、生のポインターを使用して構造体でPhantomDataを使用するにはどうすればよいですか?

  8. 8

    Cのプロセス間でポインターを使用して構造体を共有するにはどうすればよいですか?

  9. 9

    cの構造体内の構造体配列に値を割り当てるにはどうすればよいですか?

  10. 10

    参照によってSwift構造体を割り当てるにはどうすればよいですか?

  11. 11

    構造体にnullポインタを作成するにはどうすればよいですか?

  12. 12

    構造体へのポインタを持つ構造体フィールドを取得するにはどうすればよいですか?

  13. 13

    intの配列を含む構造体を構造体の配列に正しく割り当てるにはどうすればよいですか?

  14. 14

    構造体初期化子でポインタ型を使用するにはどうすればよいですか?

  15. 15

    マップで構造体ポインタを使用するにはどうすればよいですか?

  16. 16

    構造体にある関数ポインタを使用して関数を実行するにはどうすればよいですか?(C)

  17. 17

    jsonb列をスキャンして構造体/ポインタのスライスにするにはどうすればよいですか?

  18. 18

    構造体を使用して行列を割り当てるにはどうすればよいですか?

  19. 19

    スタックに割り当てられた構造体のmallocされた属性を解放するにはどうすればよいですか?

  20. 20

    その配列へのポインタを使用して、構造体の配列に含まれる構造体のフィールドにアクセスするにはどうすればよいですか?[C ++]

  21. 21

    構造体のポインタ配列にある構造体をcの別の構造体に直接コピーするにはどうすればよいですか?

  22. 22

    配列の内容を使用可能な変数に割り当てるカスタム構造体を作成するにはどうすればよいですか?

  23. 23

    従来のCAPIを呼び出すときに、最新のC ++で構造体へのポインターを他の構造体へのポインターに正しくキャストするにはどうすればよいですか?

  24. 24

    構造体へのポインタに対して操作を実行するにはどうすればよいですか?

  25. 25

    Cのtypdef構造体内の配列に値を割り当てるにはどうすればよいですか?

  26. 26

    C ++で構造体へのポインターのベクトルを使用するにはどうすればよいですか?

  27. 27

    ポインターを含む構造体へのポインターにcudaMalloc / cudaMemcpyを使用するにはどうすればよいですか?

  28. 28

    Cでmalloc()を使用して構造体の配列を割り当てるにはどうすればよいですか?

  29. 29

    goのタグではなく、構造体のタイプを使用して構造体を再整列するにはどうすればよいですか?

ホットタグ

アーカイブ