首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

struct的赋值的有关问题

2013-07-11 
struct的赋值的问题我定义了一个结构体,想对结构体里的元素进行赋值#include stdafx.h#include iostrea

struct的赋值的问题
我定义了一个结构体,想对结构体里的元素进行赋值
#include "stdafx.h"
#include <iostream>
using namespace std;

struct boy_To_girl
{
int girl_rank;
boy_To_girl *next;
};
void main()
{
boy_To_girl  *p;
p->girl_rank=10;
}
然后进行调试的时候始终报错,就是Acess Violation,也就是p->girl_rank=10;这句出错
这个为什么不能这样赋值?
[解决办法]
语句 boy_To_girl *p 只是产生了一个指针,还没有产生这个结构体的实体,所以不能用 -> 来访问
[解决办法]
楼上正解,应该这样
boy_To_girl p;
p.girl_rank=10;
或者这样
boy_To_girl  *p, q;
p = &q;
p->girl_rank=10;

[解决办法]
boy_To_girl  *p=new boy_To_girl;
p->girl_rank=10;
[解决办法]
#include "stdafx.h"
#include <iostream>
using namespace std;

typedef struct boy_To_girl
{
int girl_rank;
boy_To_girl *next;
};
void main()
{
//boy_To_girl  *p;
boy_To_girl  *p=new boy_To_girl;
p->girl_rank=10;
或者
boy_To_girl  p;
p.girl_rank=10;

}
[解决办法]
指针没有初始化就去用它了,改为:
boy_To_girl  *p = (boy_To_girl*)malloc(sizeof(boy_To_girl));
p->girl_rank=10;
...
free(p);
[解决办法]
你没有了解指针的意义 
指针只是一个四个字节的地址。
你的指针指向的地址在哪里?
压根都没有空间,你就赋值,肯定错!

热点排行