动态内存分配小问题
程序代码:
#include <stdio.h> #include <stdlib.h> #define LEN sizeof(struct stu_power) struct stu_power { char *stu_name; unsigned int power; struct stu_power *next; }; int main () { struct stu_power *head; //head存放 stu_power的首地址 head = (struct stu_power *) malloc(LEN); head->stu_name = "xyz"; //malloc(LEN) 是12字节,malloc申请的内存是固定的呀, stu_name是一个字符指针啊,在未指向存储空间的时候怎么能赋值呢。 //那为什么head->stu_name还可以输入任意长度的字符串啊 head->power = 999; printf ("%s --> %d\n", head->stu_name, head->power); return 0; }
[ 本帖最后由 admin_xyz 于 2012-10-30 22:25 编辑 ]