我很想知道有关在c语言中创建结构节点的一个问题
关于struct-objects的分配内存。
我制作了以下简单的代码,打印字母“h”和“e”,并为第一个struct和第二个struct-object分配了内存。试验我删除(发表评论) otf第一个malloc ie( 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;
}