审查这段生成代码:它要从不可信输入创建可克隆、拥有文本的消息。
构造有效的拥有型文本消息,报告分配失败,并在不共享所有权的前提下克隆它。
C
#include <stdlib.h>
#include <string.h>
typedef enum { MSG_NUMBER, MSG_TEXT } MessageKind;
typedef struct {
MessageKind kind;
union {
int n;
char *s;
} as;
} Message;
Message message_from_text(const char *input, size_t length) {
Message result = {0};
result.kind = MSG_TEXT;
result.as.s = malloc(length + 1u);
if (result.as.s == NULL) return result;
memcpy(result.as.s, input, length);
result.as.s[length] = '\0';
return result;
}
Message message_copy(Message source) {
return source;
}
生成代码仅作示例,不代表任何特定模型