我很好奇关于用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;
}