定义运算上下文时,里面定义Operation 和 Operation* 有什么区别呢?
来源:15-2 计算器核心模块接口设计

gltzlike
2021-08-30
老师,定义运算上下文时,您中间定义运算符时是直接定义的 Operation 类型,那在这里定义为 Operation* 可以吗?我个人理解是可以,仅仅是变换为对结构体指针的操作。
Operation previous_operation;
Operation current_operation;
只不过此时如果进行 CalcContext 的初始化,直接 malloc 可行吗:CalcContext *calc_context = malloc(sizeof(CalcContext));,还是要对其中指针变量也要使用malloc去分配一次内存?
typedef struct {
char input_buffer[MAX_CHAR + 1];
int input_buffer_position;
double result;
Operation *previous_operation; // 指针类型
Operation *current_operation; // 指针类型
void (*display_text)(char *);
} CalcContext;
写回答
1回答
-
没错,指针都需要自己手动处理内存开辟。具体用哪个看实际情况
112021-08-30
相似问题