注册 登录
编程论坛 C++教室

新手上路,请指教。

changyuanjia 发布于 2013-03-29 09:22, 355 次点击
只有本站会员才能查看附件,请 登录

怎么回事啊  ,谢谢各位大侠。
原来的代码是没有问题的,之后加了这么一段,
   char gpsPoint[3];
                char  ** gpsNameP = new char * [Sp3head.gpsnum];
                for(int i=0;i<Sp3head.gpsnum;i++)gpsNameP[i]= new char[3];
                int m,j;
                for( m=0,j =9;m<Sp3head.gpsnum;)
                {
                    strncpy(gpsPoint,ch+j,3);
                    strcpy(gpsNameP[m],gpsPoint);
                    j+=3;m++;
                    if(j<58)continue;
                    else break;
                }
                if(m>=Sp3head.gpsnum)break;
                else
                {    fgets(ch ,62,fp1);
                    for(j =9;m<Sp3head.gpsnum;)
                    {
                        strncpy(gpsPoint,ch+j,3);
                        strcpy(gpsNameP[m],gpsPoint);
                        j+=3;++m;
                        if(j<58)continue;
                        else break;
                    }
                }
               
                if(m>=Sp3head.gpsnum)break;
                else
                {    fgets(ch ,62,fp1);
                    for(j =9;m<Sp3head.gpsnum;)
                    {
                        strncpy(gpsPoint,ch+j,3);
                        strcpy(gpsNameP[m],gpsPoint);
                        j+=3;++m;
                        if(j<58)continue;
                        else break;
                    }
                }
                                                
                if(m>=Sp3head.gpsnum)break;
                else
                {    fgets(ch ,62,fp1);
                    for(j =9;m<Sp3head.gpsnum;)
                    {
                        strncpy(gpsPoint,ch+j,3);
                        strcpy(gpsNameP[m],gpsPoint);
                        j+=3;++m;
                        if(j<58)continue;
                        else break;
                    }
                }

                if(m>=Sp3head.gpsnum)break;
                else
                {    fgets(ch ,62,fp1);
                    for(j =9;m<Sp3head.gpsnum;)
                    {
                        strncpy(gpsPoint,ch+j,3);
                        strcpy(gpsNameP[m],gpsPoint);
                        j+=3;++m;
                        if(j<58)continue;
                        else break;
                    }
                }
就出现问题了。这个好像是堆栈的问题,我很着急,寻大侠指导。

[ 本帖最后由 changyuanjia 于 2013-3-29 11:27 编辑 ]
7 回复
#2
wp2319572013-03-29 09:24
这个画面是如何产生的呢  

怎么提问都得叫人猜呢
#3
changyuanjia2013-03-29 09:26
回复 2楼 wp231957
就是执行了这么一句话之后int * gpsPrecision = new int [Sp3head.gpsnum];就产生了。怎么破?
谢谢。
#4
锋了2013-03-29 10:48
你是要把一个数组的内存分配给一个指针吗
#5
changyuanjia2013-03-29 11:21
回复 4楼 锋了
恩 ,动态为指针分配空间。
#6
azzbcc2013-03-29 12:36
楼主欺负人,找不到那个表达式
#7
changyuanjia2013-03-29 15:32
回复 5楼 changyuanjia
额额,什么意思?我是新学C++的,请谅解。
#8
邓士林2013-03-29 17:42
人家都那么客气了,你们这些老家伙还说人家,下次记得提问要有头有尾。把源码拷上去吧
1