想要说的都在代码里了
#include#include //次测试的目的是没有定义一个结构体数组,并说明该数组的大小 //而是定义了一个结构体指针,再给它申请动态内存 //就可以当作数组来用,但是不能用t[1]->来写 //而是只能用点来写 struct S{ int a; }; int main() { struct S *t; //*2是放在struct括号外面,而非一起放在struct括号里面 t=(struct S*)malloc(sizeof(struct S)*2); //如果没有申请动态内存则后面的输出都是什么也没有, //但是没有乘上2,t[1]也有,如果t[n],n过大,则后面输出也是什么也没有 t[0].a=3; t[1].a=5; t[1000].a=4; //t[10000].a=4; 加上这个之后输出什么也没有 printf("%d %d %dn",t[0].a,t[1].a,t[1000].a); //最后输出结果为 3 5 4 //另外一种输出的方式 int i; for(i=0;i<2;i++){ printf("%d ",(*t).a); t++; //指针指向发生改变 } //最后输出的结果为 3 5



