#include
#include
#include
#include
#include
#include
#include
#include
typedef struct tagNode
{
size_t len;
int key[0];
}Node;
int main(int argc, char* argv[])
{
Node *node = NULL;
node = (Node*)malloc(sizeof(Node) + 10*sizeof(int));
bzero(node, sizeof(Node) + sizeof(int)*10);
printf("before malloc:%d\n", sizeof(node));
node->len = 10;
memset(node->key, 15, sizeof(int)*node->len);
printf("after malloc:%d\n", sizeof(node));
int i = 0;
for(i = 0; i < node->len; ++i)
{
printf("\nnode.key[%d]=%d\n", i, node->key[i]);
int j = 0;
char* pTmp = (char*)&(node->key[i]);
for(;j < 4; ++j)
{
printf("%d\t", *pTmp++);
}
}
free(node);
putchar('\n');
return 0;
}
执行结果![]()

本文通过一个C语言程序示例介绍了如何使用动态内存分配来创建和初始化一个结构体数组,并展示了如何打印该数组的内容。
1946

被折叠的 条评论
为什么被折叠?



