首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言 malloc 結構體初始化:構造函數模式與指定初始化器

     編輯:程式設計綜合問答

純 C 無構造函數,但有兩種常用模式

1. 初始化函數 (模擬構造)

typedef struct { int a; float b; } Data;
Data* Data_create(int a_val, float b_val) {
    Data* p = malloc(sizeof(Data));
    if (p) { p->a = a_val; p->b = b_val; }
    return p;
}
// 使用
Data* d = Data_create(10, 3.14f);

2. C99 指定初始化器 (配合複合字面量)

Data* d = malloc(sizeof(Data));
if (d) *d = (Data){ .a = 10, .b = 3.14f };

C++ 則可直接用構造函數

struct Data { int a; Data(int v): a(v) {} };
Data* d = new Data(10); // 或 malloc + placement new
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved