结构中的 C 数组 - 分段错误

C Array in Struct - Segmentation fault

我正在尝试更好地了解 C,目前我正在编写和试验不同的代码片段。 实际的让我发疯,因为我不知道我需要改变什么才能起作用。

我想将一些东西作为 char 数组存储到结构中,但是当我想读取存储的 char 数组时,我总是遇到分段错误。

#include <stdio.h>
#include <stdlib.h>

struct connector {
    char *subject;
};

int main() {
    char *subject = NULL;
    struct connector *conn;
    subject = "TEE";
    printf("%s\n", subject);
    
    conn->subject = subject;
    
    printf("%s\n", conn->subject);
    
    return 0;
}

那么为什么第二个 printf 有这个问题?

您有一个未初始化的结构指针 struct connector *conn

你可以在堆栈上声明它struct connector conn;或者用malloc为它分配一个内存,如下所示:struct connector *conn = (struct connector *)malloc(sizeof(struct connector));.