【问题标题】:C Array in Struct - Segmentation fault [duplicate]结构中的C数组-分段错误[重复]
【发布时间】:2021-07-15 10:06:02
【问题描述】:

我正在尝试更好地了解 C,目前我正在编写和试验不同的代码 sn-ps。 真正的让我抓狂,因为我不知道我需要改变什么才能让它起作用。

我想将某些内容作为 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 有这个问题呢?

【问题讨论】:

标签: arrays c struct segment


【解决方案1】:

你有一个结构指针struct connector *conn,它没有被初始化。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多