c++⼀c语言求助 string变量作为结构体成员在引用的时候内存不可读的问题

2024-12-02 19:01:28
推荐回答(3个)
回答1:

通过引用传递参数,首先要保证调用函数中已经将相应变量分配了空间,被调用函数中也就不应该再去分配空间了。请看我的修改:

#include
#include
#include
using namespace std;
typedef struct AddNode{
 string name;
 string num;
 struct AddList *piror;
 struct AddList *next;
}*Link,*Position;
typedef struct{
 Link head,tail;
 int len;
 int link_size;
}LinkList;
int MakeNode(Link &p,string name,string num)
{
 //p=(Link)malloc(sizeof(AddNode));//p's address has been allocated, this is illegal behaviour.
 if(!p) return 0;
 p->name=name;
 p->num=num;
 return 1;
}
int main()
{
 Link p=new AddNode;//Memmory should be allocated.
 string n="Tom";
 string m="15671628627";
 MakeNode(p,n,m);
 cout<name<<"\n"<num< return 0;
}

回答2:

把错误的提示截图吧,这样子好难判断啊!!

回答3:

mingw g++ 4.6.1 没问题