69,371
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
struct name
{
char firstname[SIZE];
char lastname[SIZE];
struct name *next;
};
int main(void)
{
struct name *head = {"aaa","bbb", };//第三个成员该怎么表示了?
return 0;
}
struct name *head = {"aaa","bbb", };//第三个成员该怎么表示了?
哥们,这是个指针,不是结构体变量,不能这样初始化的!
struct name head = {"aaa","bbb", NULL};
初始化是在编译时候决定的,其地址之前不可知,因为lz就打消这样做法的念头吧,学习学习动态分配于释放!
如果非要这么做,也有个小法
struct name
{
char firstname[SIZE];
char lastname[SIZE];
int next;
};
修改结构体,使用结构数组!
struct name head[3] = {{"aaa","bbb", 1},//0->1
{"aaa","bbb", 2},//1-》2
{"aaa","bbb", -1}}//2-》-1(空);
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#define SIZE 100
struct name
{
char firstname[SIZE];
char lastname[SIZE];
struct name *next;
};
int main(void)
{
struct name head = {"aaa","bbb", NULL};//这是对的
struct name *p = {
{"ccc", "ddd", NULL},
//上面肯定不用用NULL了吧?因为它是有值的,是保存了第二个成员的地址,那怎么表示了?
{"eee", "fff", NULL}
};
return 0;
}