段错误,检查是否有数组越界,指针异常,访问到不应该访问的内存区域

题目:给定一组二维点,每个点对应一个字符。给定任意一个位置,输出距离其最近点与它的距离。

输入

第一行两个数:点的个数N以及查询的个数M

接下来N行,每行2个浮点数和一个字符,代表点的坐标以及其对应的字符

接下来M行,每行2个浮点数,代表希望查询的位置

输出

M行,每行为点集中距离查询位置最近的距离,精确到小数点后4位。

代码:
#include
#include
#include
#include
#include
using namespace std;
struct data
{
double x;
double y;
};

struct Tnode
{
struct data dom_elt;
int split;
struct Tnode * left;
struct Tnode * right;
};

double ave(double a[],int n)
{
int sum=0;
for (int i=0;i<n;i++)
sum+=a[i];
return sum/n;
}

double variance (double a[],int n)
{
double sum=0;
double average=ave(a,n);//函数调用!!不许有【】!!!不许有int和double !!
for (int i=0;i<n;i++)
sum=(a[i]-average)*(a[i]-average);
return sum/n;
}

bool cmp1(data a, data b){
return a.x < b.x;
}

bool cmp2(data a, data b){
return a.y < b.y;
}

bool equal(data a, data b){
if (a.x == b.x && a.y == b.y)
{
return true;
}
else{
return false;
}
}
void ChooseSplit(data exm_set[], int size, int &split, data &SplitChoice){
double tmp1,tmp2;
double v1,v2;
double flag1[size],flag2[size];
for(int i=0;i<size;i++){
flag1[i]=exm_set[i].x;
flag2[i]=exm_set[i].y;}
v1=variance(flag1,size);
v2=variance(flag2,size);
/*tmp1 = tmp2 = 0;
for (int i = 0; i < size; i++)
{
//while((double)size * exm_set[i].x * exm_set[i].x!=0&&(double)size * exm_set[i].x!=0)
tmp1 += 1.0 / (double)size * exm_set[i].x * exm_set[i].x;
tmp2 += 1.0 / (double)size * exm_set[i].x;

}
double v1 = tmp1 - tmp2 * tmp2;
tmp1 = tmp2 = 0;
for (int i = 0; i < size; i++)
{
    //while((double)size * exm_set[i].x * exm_set[i].x!=0&&(double)size * exm_set[i].x!=0){
    tmp1 += 1.0 / (double)size * exm_set[i].y * exm_set[i].y;
    tmp2 += 1.0 / (double)size * exm_set[i].y;
    ///}
}
double v2 = tmp1 - tmp2 * tmp2;*/
split = v1 > v2 ? 1:0;
if (split == 0)
{
    sort(exm_set,exm_set + size-1, cmp1);
}
else{
    sort(exm_set,exm_set + size-1, cmp2);
}
SplitChoice.x = exm_set[size / 2].x;
SplitChoice.y = exm_set[size / 2].y;

}

Tnode* build_kdtree(data exm_set[], int size, Tnode* T){
if (size == 0){
return NULL;
}
else{
int split;
data dom_elt;
ChooseSplit(exm_set, size, split, dom_elt);
data exm_set_right [100];
data exm_set_left [100];
int sizeleft ,sizeright;
sizeleft = sizeright = 0;
if (split == 0)
{
for (int i = 0; i < size; i++)
{
if (!equal(exm_set[i],dom_elt) && exm_set[i].x <= dom_elt.x)
{
exm_set_left[sizeleft].x = exm_set[i].x;
exm_set_left[sizeleft].y = exm_set[i].y;
sizeleft++;
}
else if (!equal(exm_set[i],dom_elt) && exm_set[i].x > dom_elt.x)
{
exm_set_right[sizeright].x = exm_set[i].x;
exm_set_right[sizeright].y = exm_set[i].y;
sizeright++;
}
}
}
else{
for (int i = 0; i < size; i++)
{

            if (!equal(exm_set[i],dom_elt) && exm_set[i].y <= dom_elt.y)
            {
                exm_set_left[sizeleft].x = exm_set[i].x;
                exm_set_left[sizeleft].y = exm_set[i].y;
                sizeleft++;
            }
            else if (!equal(exm_set[i],dom_elt) && exm_set[i].y > dom_elt.y)
            {
                exm_set_right[sizeright].x = exm_set[i].x;
                exm_set_right[sizeright].y = exm_set[i].y;
                sizeright++;
            }
        }
    }
    T = new Tnode;
    T->dom_elt.x = dom_elt.x;
    T->dom_elt.y = dom_elt.y;
    T->split = split;
    T->left = build_kdtree(exm_set_left, sizeleft, T->left);
    T->right = build_kdtree(exm_set_right, sizeright, T->right);
    return T;
}

}
double Distance(data a, data b){
double tmp = (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y);
return sqrt(tmp);
}
void searchNearest(Tnode * Kd, data target, data &nearestpoint, double & distance){
stack search_path;
Tnode* pSearch = Kd;
data nearest;
double dist;
while(pSearch != NULL)
{
search_path.push(pSearch);

    if (pSearch->split == 0)
    {
        if(target.x <= pSearch->dom_elt.x)
        {
            pSearch = pSearch->left;
        }
        else
        {
            pSearch = pSearch->right;
        }
    }
    else{
        if(target.y <= pSearch->dom_elt.y)
        {
            pSearch = pSearch->left;
        }
        else
        {
            pSearch = pSearch->right;
        }
    }
}
nearest.x = search_path.top()->dom_elt.x;
nearest.y = search_path.top()->dom_elt.y;
while(!search_path.empty()){search_path.pop();}
dist = Distance(nearest, target);
Tnode *pBack;
while(!search_path.empty())
{
    pBack = search_path.top();
    search_path.pop();
    if(pBack->left == NULL && pBack->right == NULL)
    {
        if( Distance(nearest, target) > Distance(pBack->dom_elt, target) )
        {
            nearest = pBack->dom_elt;
            dist = Distance(pBack->dom_elt, target);
        }
    }
    else
    {
        int s = pBack->split;
        if (s == 0)
        {
            if( fabs(pBack->dom_elt.x - target.x) < dist)
            {
                if( Distance(nearest, target) > Distance(pBack->dom_elt, target) )
                {
                    nearest = pBack->dom_elt;
                    dist = Distance(pBack->dom_elt, target);
                }
                if(target.x <= pBack->dom_elt.x)
                    pSearch = pBack->right;
                else
                    pSearch = pBack->left;
                if(pSearch != NULL)
                    search_path.push(pSearch);
            }
        }
        else {
            if( fabs(pBack->dom_elt.y - target.y) < dist)
            {
                if( Distance(nearest, target) > Distance(pBack->dom_elt, target) )
                {
                    nearest = pBack->dom_elt;
                    dist = Distance(pBack->dom_elt, target);
                }
                if(target.y <= pBack->dom_elt.y)
                    pSearch = pBack->right;
                else
                    pSearch = pBack->left;
                if(pSearch != NULL)
                    search_path.push(pSearch);
            }
        }
    }
}
nearestpoint.x = nearest.x;
nearestpoint.y = nearest.y;
distance = dist;

}
int main(){
double x,y;
int m,n;
cin>>m>>n;
data exm_set[m];
char pos[m];
for(int i=0;i {
cin>>x>>y;
cin>>pos[i];
exm_set[i].x = x;
exm_set[i].y = y;
}
struct Tnode *root = NULL;
root = build_kdtree(exm_set, m, root);

data nearestpoint;
double distance;
data target;
for(int j=0;j<n;j++)
{
    double xx,yy;
    cin>>xx>>yy;
    target.x=xx;
    target.y=yy;
    searchNearest(root, target, nearestpoint, distance);
    printf("%.4f\n", distance);
}

}

0

1个回答

0
qq_40267093
qq_40267093 谢谢~
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Segmentation fault:段错误,检查是否有数组越界,指针异常,访问到不应该访问的内存区域
[code=c]#include rnusing namespace std;rn#define MAX 10000rnint main()rnrn int n, m;rn char a[MAX];rn char *p;rnrn cin>>n;rn for (int i=0; i>a[i];rn cin>>m;rnrn for (int i=0, j=n-m-1; i
指针越界访问和数组越界访问有什么区别?
void main()rnrn int a[1];rn a[2] = 2; // ok!rn int* p = a;rn *(p+2) = 2; // error!rnrnrn为什么有这样的不同!rn
数组越界如何产生段错误
数组越界VS段错误 1 栈中数组越界访问 1.1 示例代码 #include&amp;lt;stdio.h&amp;gt; int main(int argc, char *argv[]){ printf(&quot;0x%x\n&quot;, (unsigned int)(-2)); int a[5] = {0}; int i; printf(&quot;%d\n&quot;...
数组越界检查
自己写了个简单的数组越界检查,请各位帮忙看看rn#include rnclass arrayrnrnprivate:rn int *date,size,max;rnpublic:rn array(int n=10)rn rn date=new int[n];rn max=n;rn size=0;rn rn ~array()rn rn delete[]date;rn rn int check(int num)rn rn if(num>max)rn cout<<"数组越界!!!请检查";rn return 0;rn rn return 1;rn rn int array_input(int j)rn rn cin>>date[j];rn return 1;rn rn;rnvoid main()rnrn int i;rn array myarraycheck_test;rn for(i=0;i<10;i++)rn rn if(myarraycheck_test.check(10)==1)rn rn myarraycheck_test.array_input(i);rn rn elsern break;rn rnrn大家给我点意见,或者源码谢谢
请检查是否存在数组越界非法访问等情况
请问各位大神,牛客网线性插值题目提示错误,请问怎么解决啊:rnrn[color=#FF0000]您的代码已保存rn请检查是否存在数组越界非法访问等情况[/color]rnrn题目描述rnrn信号测量的结果包括测量编号和测量值。存在信号测量结果丢弃及测量结果重复的情况。rn rn 1.测量编号不连续的情况,认为是测量结果丢弃。对应测量结果丢弃的情况,需要进行插值操作以更准确的评估信号。rn 采用简化的一阶插值方法,由丢失的测量结果两头的测量值算出两者中间的丢失值。rn 假设第M个测量结果的测量值为A,第N个测量结果的测量值为B。则需要进行(N-M-1)个测量结果的插值处理。进行一阶线性插值估计的第N+i个测量结果的测量值为A+( (B-A)/(N-M) )*i (注:N的编号比M大。)rn 例如:只有测量编号为4的测量结果和测量编号为7的测量结果,测量值分别为4和10rn 则需要补充测量编号为5和6的测量结果。rn 其中测量编号为5的测量值=4 + ((10-4)/(7-4))*1 = 6rn 其中测量编号为6的测量值=4 + ((10-4)/(7-4))*2 = 8rn rn 2.测量编号相同,则认为测量结果重复,需要对丢弃后来出现的测量结果。rn rn 请根据以上规则进行测量结果的整理。rn详细描述:rn接口说明rn原型:rnintCleanUpMeasureInfo(MEASURE_INFO_STRUCT* pOriMeasureInfo,intnOriMINum,intnMaxMIRst, MEASURE_INFO_STRUCT* pMeasureInfoRst);rn输入参数:rn MEASURE_INFO_STRUCT* pOriMeasureInfo: 原始测量结果内容,以结构数组方式存放。测量编号已经按升序排列。MEASURE_INFO_STRUCT定义包含编号和测量值,见OJ.hrn int nOriMINum: 原始测量结果个数。rn int nMaxMIRst: 整理的测量结果最大个数。rn输入参数:rn MEASURE_INFO_STRUCT* pMeasureInfoRst: 整理的测量结果rn返回值:rn Intrn 整理的测量结果个数rn rnrn输入描述:rn输入说明 rn1 输入两个整数m, nrn2 输入m个数据组rnrnrn输出描述:rn输出整理后的结果rnrn输入例子:rn2 3rn4 5rn5 7rnrn输出例子:rn4 5rn5 7rnrn我的代码:rnrn[code=java]import java.util.*;rnpublic class Main rnrn public static void main(String[] args) rnrn Scanner scan=new Scanner(System.in);rn TreeMap hm=new TreeMap();rn String[] nums=new String[3];rn int count=scan.nextInt();rn for(int i=0;i
怎么看是否能够访问到对方的主机?
打开cmd,输入命令:ping+地址。 比如对方的地址是http://api-fat.9fins.com/activity/can-join-activity,那你ping命令后面需要写的地址就是:api-fat.9fins.com 如下图:
Java内存区域与模拟内存区域异常
我把Java的内存区域画了一张思维导图,以及各区域的主要功能。 模拟Java堆溢出 Java堆用于存储对象实例,只要不断地创建对象并且保证GC ROOTS到对象之间有可达路径避免被回收机制清除,就可以模拟出Java堆溢出。 package hxl.insist.jvm; import java.util.ArrayList; import java.util.List; /*
数组越界异常
用try…catch…finally写一个捕捉数组越界的异常例子。
指针 段错误
#include rn#include rnint main(void)rnrnchar *s="ab.de";rnchar *p;rnp=strchr(s,'.');rn*p='\0';rnprintf("%s\n", s);rnreturn 0;rnrnrn运行的时候 提示 段错误 rnrn如果将 char *s 改成 char s[] 就没有问题rnrn请讲解下原理 谢谢
请教关于数组越界的检查
void pp(char ** pstr)rnrn int i = 0, j = 0;rn while(pstr[i] != NULL)rn rn j = strlen(pstr[i]);rn rnrnrn对于越界的下标得到的元素值可能不是NULL,怎么检查呢?
【java】 Dubbo访问有时候访问到,有时候访问不到问题
Controller找server的时候有多个,这多个中只有95可以,当错误的时候就会对应的其他service的地方,下面报错的是157行,但是在本地的代码157行是注释,所以出现了这种诡异的情况。可以看出本地是192.168.21.95:61629,有两个提供者,其中一个是192.168.21.95:20881,另一个是192.168.22.165:20881。所以就出现了问题。解决方案之一是:在
访问类库里边的类时,只能访问到属性,不能访问到方法,在线等!
我写的一个class Base :rnusing System;rnusing System.Data;rnusing System.Data.SqlClient;rnusing System.Collections;rnusing System.Security.Cryptography;rnusing System.Text;rnusing Mis.DbBase;rnrnnamespace Mis.DbBasernrn public class User:Mis.DbBase.Basern rn private string m_Password;rn private string emp_id;rn rn public string Passwordrn rn getreturn m_Password;rn setm_Password=value;rn rn public string Emp_Idrn rn getreturn emp_id;rn setemp_id=value;rn rn public static void Add(string name,string password,string Emp_Id)rn rn if(IsExist(Emp_Id))rn throw new Exception("This Name was registered");rn else rn rn strSQL ="Insert into t_emp_info(emp_name,Password,emp_id) values("rn +""+name+","rn +""+password+"," rn +""+Emp_Id+")";rn try rn ExecuteSql(strSQL);rn catchrn throw new Exception("register failed");rnrn rn rn public static void Delete(int id)rn rn strSQL="update t_emp_info set flag='0'where emp_id ="+id;rn try rn ExecuteSql(strSQL);rn catchrn throw new Exception("Register Failed");rn rn rn public static bool IsExist(string Emp_Id)rn rn strSQL="select emp_id from t_emp_info where flag=1 and emp_id ='+id'";rn tryrn rn ExecuteSql4Value(strSQL);rn return true;rn catchrn rn return false;rn rn rn rn rn rnrnrnrn在引用这个类库时:rnusing System;rnusing System.Collections;rnusing System.ComponentModel;rnusing System.Data;rnusing System.Drawing;rnusing System.Web;rnusing System.Web.SessionState;rnusing System.Web.UI;rnusing System.Web.UI.WebControls;rnusing System.Web.UI.HtmlControls;rnrnusing Mis.DbBase;rnusing DbBase;rnrnnamespace TheRestrnrn /// rn /// empFrm 的摘要说明。rn /// rn public class empFrm : System.Web.UI.Pagern rn protected System.Web.UI.WebControls.TextBox TextBox1;rn protected System.Web.UI.WebControls.TextBox TextBox2;rn protected System.Web.UI.WebControls.Button Button1;rn rn private void Page_Load(object sender, System.EventArgs e)rn rn // 在此处放置用户代码以初始化页面rn rnrn #region Web 窗体设计器生成的代码rn override protected void OnInit(EventArgs e)rn rn //rn // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。rn //rn InitializeComponent();rn base.OnInit(e);rn rn rn /// rn /// 设计器支持所需的方法 - 不要使用代码编辑器修改rn /// 此方法的内容。rn /// rn private void InitializeComponent()rn rn this.Button1.Click += new System.EventHandler(this.Button1_Click);rn this.Load += new System.EventHandler(this.Page_Load);rnrn rn #endregionrnrn private void Button1_Click(object sender, System.EventArgs e)rn rn Mis.DbBase.User user=new Mis.DbBase.User();rn rn user.ID=TextBox1.Text;rn user.Name=TextBox2.Text;rn rn rn rn rnrnrn当我试图访问user对象时,只能访问到user下边的属性ID和Name,却不能访问user的方法Add(string name,string password,string Emp_Id);也就是当我输入user.的时候,后边只提示我的属性ID和Name,却没有方法Add(string name,string password,string Emp_Id)的提示;rn请问高手,我怎么解决这样的问题?rn
牛客网 请检查是否存在数组越界非法访问,野指针乱访问,空指针乱访问等情况
先贴出来正确的代码: import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner in = new Scanner(System.in); while(in.ha
如何检查指针是否赋值
rn如何检查指针是否赋值rnrn使用NEW 分配了个很大的指针数组,为了提高效率,不需要给不使用的元素赋值,当然没有初始化rnrnNEW 分配内存时,它会干些什么?rnrnrn当随机获取的时候,如何检查指针元素已经赋值rnrn使用 IF(指针) 可以吗?rnrn调式发现,没有初始化或赋值的指针值为 0xcdcdcdcdrnrn我想提高效率,免除不必要的赋值
delete是否检查指针类型?
可以这样做吗?rn[code=c]rnchar* cp = new char[100];rnint* ip = (int*)cp;rndelete ip;rnip = cp = NULL;rn[/code]
linux下段错误检查sigsegv
用于检查linux段错误时,定位源码位置
Java内存区域与内存溢出异常
1、程序计数器: 1)、指令寄存器:寄存器是中央处理器内的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。指令寄存器(IR )用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。 2)、程序计数器...
java内存区域与内存溢出异常
1. 运行时数据区域1.1 方法区方法区是各个线程共享的内存区域,用于存储类的信息、常量。静态变量、即时编译器编译后的代码等数据,大小通过-XX:PermSize和-XX:MaxPermSize控制;还有一个别名为Non-Heap(非堆)和永久代。1.2 堆虚拟机启动时创建,是各个线程共享的内存区域,唯一目的就是存放对象实例,堆的大小通过-Xmx和-Xms控制,设置一样,即避免自动扩展,提高性能;还
JVM内存区域异常实战
内存中可能出现的异常 异常点 StackOverflowError OutOfMemoryError PC – – VM Stack 请求栈深度过大 可动态扩展栈情况下,无法申请足够的内存 Native MethodStack 同上 同上 Heap – 创建对象时无法申请足够的内存 Method Area – 无法满足
JAVA内存区域与内存溢出异常
  1,运行时数据区域 根据JAVA虚拟机规范的规定:JAVA虚拟机所管理的内存将会包括以下几个运行时数据区域     程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器,通过改变计数器的值来选取下一条需要执行的字节码指令、分支、循环、跳转、异常处理、线程恢复等基础功能。每条线程都需要一个独立的程序...
如何访问到该文件?
我在写一个用JSP对EXCEL文件操作的程序,不过现在有个问题是,该文件我只能用绝对路径访问,rn程序片段如下: InputStream is = new FileInputStream("E:/lx/kq.xls"); rn在这里参数为("E:/lx/kq.xls"),也就是把文件放在E盘的lx文件夹里面才能访问到。但是将来rn我的程序是分别在客户端和服务器端运行的,也就是个小型网站。而我的这个文件是要放在客户端rn的电脑上的,这样的话估计肯定是访问不到该文件的。谁能教教我该怎么写这里的路径。rnPS:不要类如“用相对路径”这样简单的回答。最好能说的详细些。
笔记本怎样才能访问到台式机
环境,笔记本是windows7 使用wifi 地址是192.168.1.101rn无线路由地址是192.168.1.253,并且无线路由的有线端是从另一个集线器的一个端口出的.rn电信ADSL的出口接上面的集线器,集线器有一口是接无线路由器,就是上面的那个rn再有一口接台式机windowsxp.IP地址是192.168.110,网关为192.168.1.1 那么由这种构成的局域网,笔记本如何与台式机互访?rn我一直没有找到如何让它们成功互访,不知还有那里没有接对rn另外上面的台式机的网关不知设多少?设为192.168.1.1或192.168.1.253(无线路由的地址)好象都不行.rn按理说它们都在一个地址段,不过不知道无线的这个地址到低是不是与台式机是同一个地址段?rn如果台式机也有无线WIFI的话,我想192.168.1.253就应该是在同一地址段rnrnrn谢谢!
不检查异常与检查异常
书上说Java.lang定义的异常分为不检查异常和检查异常。如果方法可以产生这些异常却无法对其进行处理,就必须在该方法的throws列表中列出。那其他的包下的异常呢?例如java.io下的异常呢?谢谢各位指教。
Ajax 访问到错误文件路径
[img=http://img.my.csdn.net/uploads/201302/20/1361331905_1469.jpg][/img]rn如图,本来是要访问CMS/CmsHandler.ashxrn执行页面后却访问到了EMS/EMSHandler.ashxrn请问我是不是哪里有设置错误
怎么样才能访问到st.a?
class strn int a=0;rn static public void main(String args[])rn st qq=new st();rn // a=1;a=2;a=3;rn A s=new A();rn// System.out.println(a);rn cs e=new cs();rn rn rnclass csrnrn cs()rn System.out.println(A.b);rn oo();rn rnvoid oo()rn System.out.println(st.a);rn rnrnrnclass Arn static int b=10;rn
JVM内存区域异常模拟
JVM内存区域分为程序计数器,虚拟机栈,本地方法栈,堆区,方法区,运行时常量池以及本地直接内存。 程序计数器,每个线程都有一个独立的程序计数器,作为当前线程执行字节码的行号指示器。如果执行java方法则计数器记录正在执行的虚拟机字节码指令地址,如果执行native方法则该值为空。该区域不会发生OOM异常。 虚拟机栈,线程私有,java方法执行的内存模型。每个方法会创建一个栈帧,每执行一个方法对...
java内存区域与内存异常
程序运行对于各部分: java虚拟机运行时的数据区 线程隔离的数据区:虚拟机栈,本地方法栈,程序计数器。三者是线程私有的。 java堆和方法区,所有线程共享的内存区域。 程序计数器:当前线程所执行的字节码的行号指示器。 虚拟机栈:java方法执行的内存模型。每个方法在执行的同时都会创建一个栈帧。–使用到的java方法服务。 栈帧存储局部变量表(存放编译器可知的各种基本数据类型,对象引用等),操...
【 Java 内存区域与内存溢出异常 】
1 概述 Java 程序员在虚拟机自动内存管理机制下,不再需要为每一个 new 操作去写配对的 delete/free 代码,不容易出现内存泄漏和内存溢出问题,由虚拟机管理内存看起来十分美好。 但是,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎么样使用内存的,那么排查错误将会十分艰难。 下面就介绍 Java 虚拟机内存的各个区域。 2 运行时的数据区域 Java 虚拟机在执行 Java ...
如何访问到自动生成的静态页面
我可以把aspx页面自动转换成html页面,并保存在“html”文件夹里。现在我不知道用何种方法才可以访问这些页面呢。以前的链接都是打开“***.aspx”页面的。如果要在地址栏里传参数又该如何处理.
服务器不能被访问到??
自已的电脑制作服务器,本机可以访问到,但在别的电脑上不能访问到。什么原因???用ping命令可以ping通。。。可以就是访问不到??用花生壳动态域名解析。。
ext2.2 怎么访问到panel
Ext.namespace('ExtFrame.ui');rnExtFrame.ui.ChatWin = function(_toUserName, _currentUser) rnrn var toUserName = _toUserName;rn var currentUser = _currentUser;rn var win = null;rn /**rn * @method creteWinrn * @publicrn * @description create the ChatWinrn */rn var createWin = function() rn win = new Ext.Window(rn title : '和' + toUserName + '交流中',rn id : toUserName,rn width : 550,rn height : 450,rn collapsible : true,rn labelAlign : 'left',rn labelWidth : 60,rn hideLabel : false,rn maximizable : true,rn border : false,rn layout : 'border',rn frame : true,rn items : [rn region : 'north',rn border : 0,rn height : 250,rn xtype : 'panel',rn id : 'showMsg',rn layout : 'fit',rn bodyStyle : 'padding:10px;'rn , rn rn region : 'center',rn border : 0,rn height : 20,rn xtype : 'toolbar',rn id : 'test',rn layout : 'fit',rn bodyStyle : 'padding:10px;',rn items :[ xtype:'tbbutton', text:'查看聊天记录' ,rn handler:function() rn addhistory(_toUserName, _currentUser); rn rn ,rn ' ',rn xtype:'tbbutton', text:'发送文件' ,rn handler:function() rn alert('该功能未开放'); rn ]rn ,rn rn rn region : 'south',rn minHeight : 150,rn split : true,rn xtype : 'form',rn layout:'fit',rn border : false,rn hideLabels : true,rn bodyStyle : 'background:transparent;',rn height : 150,rn items : [rn rn xtype : 'htmleditor',rn id : 'editMsg',rn fieldLabel : '',rn name : 'body',rn height:130,rn allowBlank : false,rn anchor : '0-50',rn border : falsern rn ],rn buttons : [rn text : '发送',rn handler : viewMsgrn , rn text : '关闭',rn handler : closeWinrn ]rn ]rn );rn win.show();rn rn rn /**rn * @method sendMsgrn * @privatern * @description 查看你的聊天记录rn */rn var addhistory =function(_toUserName, _currentUser) rnrn rn rn var sl = this.ownerCt.ownerCt.getComponent(0); rn [color=#FF0000]///这里出问题访问不到[/color] rn alert(this.ownerCt.ownerCt.getComponent(0)); rn sl.body.insertHtml("beforeEnd", "ddddd");rn sl.body.scroll('bottom', 9999);rn rn rn rn /**rn * @method sendMsgrn * @privatern * @description view your messages dynamiclyrn */rn var viewMsg = function() rn var message = this.ownerCt.form.items.items[0].getValue();rn var sendDate = new Date().format('Y-m-d H:i:s');rn var showPanel = this.ownerCt.ownerCt.getComponent(0);rn [color=#FF0000] //这里可以访问[/color] alert(this.ownerCt.ownerCt.getComponent(0));rn var formatMsg = " "rn + currentUser + " " + sendDate + " "rn + message + "";rn showPanel.body.insertHtml("beforeEnd", formatMsg);rn showPanel.body.scroll('bottom', 9999);rn this.ownerCt.form.items.items[0].reset();rn submitMsg(message);rn rn /**rn * @method closeWinrn * @privatern * @description close the chatWinrn */rn var closeWin = function() rn Ext.getCmp(toUserName).close();rn rn /**rn * @method submitMsgrn * @param messagern * @privatern * @description submit the messages to the serverrn */rn var submitMsg = function(message) rn var conn = new Ext.data.Connection();rn conn.request(rn url : 'http://localhost:8080/reseller/sendMsg.do',rn method : 'POST',rn params : rn fromUserName : currentUser,rn toUserName : toUserName,rn message : messagern ,rn sucess : function(responseObject) rnrn ,rn failure : function() rn Ext.Msg.alert('发送失败', responseObject.statusText);rn rn );rn rn return rn /**rn * @method initrn * @publicrn * @description initializes the winrn */rn init : function() rn if (!win) rn createWin();rn elsern win.show();rn rn rnrnrnrnrn问下 items :[ xtype:'tbbutton', text:'查看聊天记录' , 中的tbbutton 怎么访问到showMsgrn用了 this.ownerCt.ownerCt.getComponent(0);不行rn用了 ext.getcmp 也不行rn用了 Ext.getCmp(msg.fromUserName).findById("showMsg") 也没找到 rn
访问到系统的联系人数据权限
-
java数组越界异常日志
exception info=Index: 1, Size: 1 java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
检查是否有中文
检查一段String中是否包含中文,非常简单粗暴有用。。。
java数组越界不报异常
本机系统 win7 32位旗舰版 ;jdk版本1.6.0;编写如下程序rnclass divdemornrn int div(int a,int b) throws Exceptionrn rn int[] ary=new int[3];rn System.out.println(ary[a]);rn return a/b;rn rnrnclass demo8 rnrn public static void main(String[] args) rn rn rn rn divdemo d=new divdemo();rn tryrn int x=d.div(5,1);rn System.out.println();rn rn catch(Exception e)rn System.out.println(e.getMessage());rn rn rn System.out.println("Hello World!");rn rnrn很明显程序执行到调用divdemo类的方法div时,出现了数组越界,可java不报越界异常,求解释
为什么指针不报数组越界?
#include"stdafx.h"rn#include"iostream.h"rnint main(int argc,int argv[])rnrn int *ptr[2];rn int array[] = 1,2,3;rn for(int i = 0 ;i<=2;i++)rn rn ptr[i] = &array[i];rn cout<<*ptr[i]<
相关热词 c# gdi 占用内存 c#中遍历字典 c#控制台模拟dos c# 斜率 最小二乘法 c#进程延迟 c# mysql完整项目 c# grid 总行数 c# web浏览器插件 c# xml 生成xsd c# 操作sql视图