数据-为什么内存不可访问?

问题描述

为什么内存不可访问?

#include
#include
#include
#include
#include
#define MaxSize 100
#define DataType char
using namespace std;

//自定义函数,输出结点的数据域

//结点类
class Node {
friend class BTree;
private:
Node *lChild; //左子树指针
Node *rChild; //右子树指针
public:
DataType data; //数据域,存储数据元素

//构造结点函数
Node(){
lChild = NULL;
rChild = NULL;
}

//构造结点函数
Node(DataType item, Node *left = NULL,Node *right = NULL){
data = item;
lChild = left;
rChild = right;
}

//析构函数
~Node(){}
};

void Visit(Node* p) {
cout<data<<" ";
}
//二叉树类
class BTree {
public:
BTree(); //构造函数
void Create(int No[],char data[],int n); //创建二叉树
void Print(Node* r,int level); //实现二叉树的凹入表形式打印
private:
Node* root; //指向二叉树根结点的指针
};

//创建二叉树二叉链表
BTree::BTree() {
root = NULL;
}
Node* BTree::getRoot() {
return root;
}

// 已知二叉树的结点的层序编号序列,数据数列和结点数,建立此二叉树
void BTree::Create(int No[],char data[],int n) {
int num=1;
int row=1;

Node *p = new Node;
for(int i=0;i
{
row=0;
p = this->root;
while(No[i]!=1){
while(1)
{
if(No[i]
break;
row++;
}
if(((No[i]-pow(2,row-1)+1)*2)>pow(2,row-1))
{
p=p->rChild;
}
else
{
p=p->lChild;
}
No[i]-=pow(2,row-2);
}
p->data = data[i];
}
}
int main()
{
int n,i;
int * No;//层序编号动态数组;
DataType *data;//结点数据动态数组;
cout<<"请输入结点数"<
cin>>n;
No=new int[n];
data=new char[n];
cout<<"请输入该结点的层序编号序列:";
for( i=0;i
cin>>No[i] ;

cout<<"请输入结点的数据序列:";
for( i=0;i
cin>>data[i];

BTree bt;
bt.Create(No,data,n);

getch();
}


解决方案

YOU are becarefully to set initialize value!

解决方案二:

c++内存访问越界
汇编学习笔记:寄存器(内存访问)
纯DOS下内存的管理—实模式下访问4GB内存

解决方案三:

代码拷贝得好多错误,更新一下,都放到代码片里。

解决方案四:

variable "P" is point type. Point Value must not be null.
but becasue you miss to check var 's initialization!
"null"->point is invalid

时间: 2024-11-05 05:25:02

数据-为什么内存不可访问?的相关文章

[叩响C#之门]第1章 初识编程 1.6 数据和内存

1.6 数据和内存 用笔和纸计算,数据是写在纸上的:用计算机计算,数据是写在内存里的.那么数据在内存里是如何存储的呢?本节主要学习数据在内存中的存储方式,都是些简单.很基础的知识,没有这些知识,也可以学习C#语法,但不理解数据的存储方式,你将会对编程有一种神秘莫测的感觉.现在就让我们揭开这层神秘的面纱,清清楚楚.明明白白地学习编程吧.

python使用cStringIO实现临时内存文件访问的方法

 这篇文章主要介绍了python使用cStringIO实现临时内存文件访问的方法,涉及Python使用cStringIO模块操作内存的技巧,需要的朋友可以参考下     本文实例讲述了python使用cStringIO实现临时内存文件访问的方法.分享给大家供大家参考.具体分析如下: 如果希望从网络读取文件进行处理,但是又不希望保存文件到硬盘,可以使用cStringIO模块进行处理 ? 1 2 res = urllib2.urlopen(pic,timeout=10) f = cStringIO.

php“内存位置访问无效”错误的解决办法

配置环境如下: Win2003SP2+IIS6+php5.26+mysql5.0.51a+zend3.3a+PhpMyAdmin2.11.7.1 PHP执行方式:isapi.Mysql为手动安装. 关于"内存位置访问无效"的错误解决办法与步骤:(一些部份无效的调试步骤略过..) 一.将IIS的错误显示打开,未发现错误原因! 二.检查IIS扩展,ISAPI.php.ini与Mysql配置以及相应的安装目录ACLs权限,均无误. 三.回收IIS进程,错误仍然出现"内存位置访问无效

Mysql大数据量存储及访问的设计讨论

一.引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载.对于系统的稳定性和扩展性造成了极大的问题.通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式.水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失.通过负载均衡策略,有效的降低了单台机器的访问负载,降低了宕机的可能性:通过集群方案,解决了数据库宕机带来的单点数据库不能访问的问题:通过读写分离策略更

串口通信内存泄露-C#串口通信高速向下位机发送数据出现内存不断增加

问题描述 C#串口通信高速向下位机发送数据出现内存不断增加 using System; using System.Linq; using System.Collections.Generic; using System.Text; using System.IO.Ports; using System.Windows.Forms; namespace MSPCS { /// /// 通讯端口,用于和上位机通讯 /// 上行与下行使用同一种格式: /// /* 同步头 6 Byte EB90EB9

数据-redis内存溢出有什么好一点的解决办法.

问题描述 redis内存溢出有什么好一点的解决办法. 小弟又来唠叨了, redis里面有什么方法当内存达到限制值,把过期的数据存到硬盘不存到内存,通过这样的方式来释放内存 解决方案 过期的数据redis内存不够的时候会自动清除来释放内存.

生命周期-java数据在内存中的存放问题

问题描述 java数据在内存中的存放问题 谢谢查看. 问题是这样的,作为java新手,最近老搞不明白数据在内存中到底存放位置的问题.查了许多资料后,得出个结论,请有错误的帮忙指正,谢谢. 基本类型的数值会存放在栈中,执行效率高:引用对象(不包括String类型)的数据放在堆中,堆灵活性高,容量可变长. 但是编译器在编译时候,基本类型中部分,称为直接量会为了效率高会直接生成放在常量区,其他都会在栈中生成,而且经过优化,如果是同一生命周期内栈数据是可以共享的,也就是有相同的数据的变量可以指向同个栈地

无法加载DLL“Mwic_32.dll”:内存位置访问无效

问题描述 使用vs2010做activex控件,其中需要调用第三方mwic_32.dll中的方法,生成.exe和.msi时将.dll一同打包进去,并将.msi打包成.cab文件,本机访问正确,但是客户端访问时却提示"无法加载DLL"Mwic_32.dll":内存位置访问无效".请问各位高手是何原因,如何解决呢? 解决方案

mat-Opencv中写入数据到内存

问题描述 Opencv中写入数据到内存 如何把Mat 类型的数据,压缩成jpeg并写入内存,比如说某个uchar数组.我知道用imwrite,可以实现 把Mat类型数据压缩成jpeg并写入文件.有没有哪位大神知道,将结果写入内存而不是文件? 解决方案 [Computer Vision]OPENCV内存泄漏