结构中的 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));
.
我正在尝试更好地了解 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));
.