#include
#include
#include
using namespace std;
const int MAXSIZE = 100;
typedef struct
{
string address;///??
int x;
string next;///????
}info;
typedef struct
{
info data[MAXSIZE];
int length;
}SeqList,*pSeqList;
pSeqList initSeqList()
{
pSeqList L = (pSeqList)malloc(sizeof(SeqList));
L->length = 0;
return L;
}
int main()
{
string first;
int len,cnt;
cin >> first >> len >> cnt;
pSeqList PL = initSeqList();
for (int i = 0;i < len;i++)
{
cin >> PL->data[i].address >> PL->data[i].x >> PL->data[i].next;
}
for (int i = 0;i < len;i++)
{
cout << PL->data[i].address << ends << PL->data[i].x << ends << PL->data[i].next << endl;
}
return 0;
}
测试数据:
00100 6 4
00000 4 99999
00100 1 12309
68237 6 -1
33218 3 00000
99999 5 68237
12309 2 33218
cin >> PL->data[i].address >> PL->data[i].x >> PL->data[i].next;
这里PL是空的,根本没有分配空间
pSeqList L = (pSeqList)malloc(sizeof(SeqList)); 有分配哦
你分配了PL,但是length是0
string的size malloc的时候大小不对,先用变量接受cin的,然后再fu zhi
你可以用memset将分配后的内存清空下看看。
运行不通过,是什么意思?你想要什么结果,现在得到的结果与你想要的结果有什么差别?
这些你要告诉别人啊,否则,别人在猜!很难得到你想要的结案。
如果使用 typedef struct
{
string address;///??
int x;
string next;///????
}info; 的定义,就不能对分配来的空间如 pSeqList L = (pSeqList)malloc(sizeof(SeqList)); 使用 memset 进行清零。否则,address 和 next 变量异常。
其次,对 string 类型求 sizeof,这个我还真没有试过。建议将两个 string 的变量定义换成字符串数组。