我很好奇关于用c语言创建结构节点的一个问题

它是关于struct-objects的分配内存 .

我做了以下简单的代码,打印字母"h"和"e",我为第一个结构和第二个结构对象分配了内存 . 试验我删除(发表评论)otf第一个malloc即( ptrList = malloc(sizeof(list));

实际上 - 没有崩溃 - 它仍然有效,这是我的问题 - 这是什么原因?

对不起凌乱的代码 .

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

 struct tList {
    char t[1];
    struct tList *next;
 };

typedef struct tList TList;

 int main(void) {

TList list;
TList *ptrList;
TList *ptrListNext;
//ptrList = malloc(sizeof(list));
ptrList = &list;

strcpy(ptrList, "h");

printf("%s", list.t);

ptrList->next = 0;

ptrListNext = ptrList;
ptrListNext->next = malloc(sizeof(list));
ptrListNext = ptrListNext->next;

strcpy(ptrListNext, "e");

printf("%s", ptrListNext->t);



return EXIT_SUCCESS;
 }