C++初始化没有指针的结构

Igo*_*gor 0 c++ struct pointers

我有一个C++结构

typedef struct DIFColor
{
    uint8_t r;
    uint8_t g;
    uint8_t b;


} DIFColor;
Run Code Online (Sandbox Code Playgroud)

我试图像这样初始化它:

DIFColor d = new DIFColor();

d.r = r;
d.g = g;
d.b = b;
Run Code Online (Sandbox Code Playgroud)

但编译器抱怨无法将指针转换为常规变量.什么指针?从这个问题我认为你可以简单地创建一个新的结构,而不必处理指针和动态内存分配new.它是否与我在C中初始化结构这一事实有关,而不是使用构造函数?

error: conversion from 'DIFColor*' to non-scalar type 'DIFColor' requested
Run Code Online (Sandbox Code Playgroud)

Bra*_*ohn 6

尝试:

DIFColor d = { r, g, b };
Run Code Online (Sandbox Code Playgroud)