• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Error

            #Error

            #

            關(guān)于用delete刪除二維數(shù)組

            char *szSubFrame[64] ={0};
                    char *word;
                    int i, numString = 0;
                    char *sep = "$\0\r\n";
                    for(i=0, word = strtok(szBuff, sep);
                            word != NULL;
                            word = strtok(NULL, sep), i++)
                    {
                            szSubFrame[i] = new char[strlen(word)+1];
                            memcpy(szSubFrame[i], word, strlen(word));
                            numString++;
                    }

                   

                    對于上述的代碼,如何用delete刪除動態(tài)建立的數(shù)組

                    for(i=0; i<numString; i++)
                    {
                            delete []szSubFrame[i];
                    }

                    這個可以嗎?

            posted @ 2009-10-07 20:45 Error 閱讀(948) | 評論 (0)編輯 收藏

            關(guān)于strtok函數(shù)

            #include <string.h>
            #include <stdio.h>

            int main(void)
            {
               char input[16] = "abc,dhh,eee";
               char *p;

               /* strtok places a NULL terminator
               in front of the token, if found */
               p = strtok(input, ",");
               if (p)   printf("%s\n", p);

               /* A second call to strtok using a NULL
               as the first parameter returns a pointer
               to the character following the token  */
               p = strtok(NULL, ",");
               if (p)   printf("%s\n", p);

               p = strtok(NULL, ",");
               if (p)   printf("%s\n", p);
               return 0;
            }

            MSDN上的原話:
            On the first call to strtok, the function skips leading delimiters and returns a pointer to the first token in strToken, terminating the token with a null character. More tokens can be broken out of the remainder of strToken by a series of calls to strtok. Each call to strtok modifies strToken by inserting a null character after the token returned by that call. To read the next token from strToken, call strtok with a NULL value for the strToken argument. The NULL strToken argument causes strtok to search for the next token in the modified strToken. The strDelimit argument can take any value from one call to the next so that the set of delimiters may vary.

            第二次參數(shù)竟然可以NULL
            是因?yàn)閟trtok中用static指針記住了上次處理后的位置

            我想是因?yàn)檫@個函數(shù)內(nèi)部實(shí)現(xiàn)時(shí),用到了靜態(tài)變量,而要不要修改這個變量,就是要根據(jù)第一個參數(shù)來確定!

            當(dāng)為NULL時(shí),就不再修改Static變量的值了!

            這個靜態(tài)變量的作用,就是記錄原始字符串的長度的!

            posted @ 2009-10-07 19:14 Error 閱讀(537) | 評論 (0)編輯 收藏

            new和delete的用法

            new和delete運(yùn)算符用于動態(tài)分配和撤銷內(nèi)存的運(yùn)算符

            new用法:

                      1.     開辟單變量地址空間

                           1)new int;  //開辟一個存放數(shù)組的存儲空間,返回一個指向該存儲空間的地址.int *a = new int 即為將一個int類型的地址賦值給整型指針a. 

                           2)int *a = new int(5) 作用同上,但是同時(shí)將整數(shù)賦值為5

                      2.     開辟數(shù)組空間

                           一維: int *a = new int[100];開辟一個大小為100的整型數(shù)組空間

                           二維: int **a = new int[5][6]

                           三維及其以上:依此類推.

                     一般用法: new 類型 [初值]

            delete用法:

                      1. int *a = new int;

                           delete a;   //釋放單個int的空間

                      2.int *a = new int[5];

                           delete [] a; //釋放int數(shù)組空間

            int *p1 = (int *)malloc(sizeof(int) * length);

            int *p2 = new int[length];

            運(yùn)算符new比malloc要簡單多了,這是因?yàn)?/span>new內(nèi)置了sizeof、類型轉(zhuǎn)換和類型安全檢查功能。對于非內(nèi)部數(shù)據(jù)類型的對象而言,new在創(chuàng)建動態(tài)對象的同時(shí)完成了初始化工作。如果對象有多個構(gòu)造函數(shù),那么new的語句也可以有多種形式。例如

            class Obj

            {

            public :

                Obj(void);      // 無參數(shù)的構(gòu)造函數(shù)

                Obj(int x);     // 帶一個參數(shù)的構(gòu)造函數(shù)

            }

            void Test(void)

            {

                Obj *a = new Obj;

                Obj *b = new Obj(1);   // 初值為1

               

                delete a;

                delete b;

            }

            如果用new創(chuàng)建對象數(shù)組,那么只能使用對象的無參數(shù)構(gòu)造函數(shù)。例如

                Obj *objects = new Obj[100];   // 創(chuàng)建100個動態(tài)對象

            不能寫成

                Obj *objects = new Obj[100](1);// 創(chuàng)建100個動態(tài)對象的同時(shí)賦初值1

            在用delete釋放對象數(shù)組時(shí),留意不要丟了符號‘[]’。例如

                delete []objects;   // 正確的用法

            delete objects; // 錯誤的用法

            后者相當(dāng)于delete objects[0],漏掉了另外99個對象。


            malloc   和free只是分配了空間.
            而new和delete不僅分配了空間,還完成了對構(gòu)造函數(shù)和析購函數(shù)的調(diào)用,當(dāng)然這是對對象而言。
            兩者在對基本數(shù)據(jù)類型操作時(shí)候,沒有多大區(qū)別,區(qū)別在于對對象進(jìn)行操作時(shí)。malloc和free是函數(shù),但new和delete是操作符

            posted @ 2009-10-07 17:15 Error 閱讀(1006) | 評論 (0)編輯 收藏

            輸出位(最簡單的情形)

            #include <iostream>

            using namespace std;

            void display_bits(unsigned u)
            {
                int t;
                for(t = 128; t >= 1; t /= 2)\
                {
                    if(u&t) cout<<"1 ";
                    else cout<<"0 ";
                }
                cout<<endl;
            }

            int main()
            {
                display_bits(10);
                return 0;
            }

            posted @ 2009-10-07 15:50 Error 閱讀(157) | 評論 (0)編輯 收藏

            枚舉與對應(yīng)項(xiàng)字符串的轉(zhuǎn)化

            #include <iostream>

            using namespace std;

            enum language{java, c, pascal, fortran, vc, vb, cpp} lang;

            char name[][10] = {
            "java",
            "c",
            "pascal",
            "fortran",
            "vc",
            "vb",
            "cpp"
            };

            int main()
            {
                lang = fortran;
                cout << name[lang] << endl;

                lang = java;
                cout << name[lang] << endl;

                lang = pascal;
                cout << name[lang] << endl;

                lang = (language) 6;//這個強(qiáng)轉(zhuǎn)經(jīng)典
                cout << name[lang] << endl;
                return 0;
            }

            posted @ 2009-10-07 15:10 Error 閱讀(1309) | 評論 (0)編輯 收藏

            比較復(fù)雜和怪異的指針用法-請教???

            #include "iostream.h"
            #include "iomanip.h"
            int n;
            int main(int argc, char* argv[])
            {
                void stu_average(int (*p)[6]);
                void subject_average(int (*p)[6]);
                int a[50][6];
                int i,j;
                int (*p)[6]=a;
                cin>>n;
                for (i=0;i<n;i++)
                    for (j=0;j<6;j++)
                        cin>>*(*(p+i)+j);

                stu_average(a);

                subject_average(a);
                return 0;
            }
            void stu_average(int (*p)[6])
            {
                int sum=0;
                int i,j;

                for (i=0;i<n;i++)
                {

                    cout<<*(*(p+i)+0)<<" ";
                    for (sum=0,j=1;j<6;j++)
                    {
                        sum+=*(*(p+i)+j);
                        cout<<setiosflags(ios::fixed)<<setprecision(1);
                        cout<<*(*(p+i)+j)<<" ";
                    }
                    cout<<sum/5.0<<endl;
                }
            }
            void subject_average(int (*p)[6])
            {
                int i,j;
                int sum=0;
                for (j=1;j<6;j++)
                {
                    for (i=0,sum=0;i<n;i++)
                    {
                        sum+=*(*(p+i)+j);
                    }
                    cout<<setiosflags(ios::fixed)<<setprecision(1);
                    cout<<(float)sum/n<<" ";
                }
                cout<<endl;
            }

            誰能給我講一下里面的指針哦?????

            posted @ 2009-10-06 18:25 Error 閱讀(208) | 評論 (0)編輯 收藏

            頭文件iomanip

            主要是對cin,cout之類的一些操縱運(yùn)算子,比如setfill,setw,setbase,setprecision等等。它是I/O流控制頭文 件,就像C里面的格式化輸出一樣.以下是一些常見的控制函數(shù)的:
              dec 置基數(shù)為10 相當(dāng)于"%d"
              hex 置基數(shù)為16 相當(dāng)于"%X"
              oct 置基數(shù)為8 相當(dāng)于"%o"
              setfill(c) 設(shè)填充字符為c
              setprecision(n) 設(shè)顯示小數(shù)精度為n位
              setw(n) 設(shè)域?qū)挒閚個字符
              這個控制符的意思是保證輸出寬度為n。如:
              cout<<setw(3)<<1<<setw(3)<<10<<setw(3)<<100; 輸出結(jié)果為
              1 10100 (默認(rèn)是右對齊)當(dāng)輸出長度大于3時(shí)(<<1000),setw(3)不起作用。
              setioflags(ios::fixed) 固定的浮點(diǎn)顯示
              setioflags(ios::scientific) 指數(shù)表示
              setiosflags(ios::left) 左對齊
              setiosflags(ios::right) 右對齊
              setiosflags(ios::skipws 忽略前導(dǎo)空白
              setiosflags(ios::uppercase) 16進(jìn)制數(shù)大寫輸出
              setiosflags(ios::lowercase) 16進(jìn)制小寫輸出
              setiosflags(ios::showpoint) 強(qiáng)制顯示小數(shù)點(diǎn)
              setiosflags(ios::showpos) 強(qiáng)制顯示符號
              舉例:
              #include <iostream>
              #include <iomanip>
              using namespace std;
              int main()
              {
              cout<<12345.0<<endl;//輸出"12345"
              cout<<setiosflags(ios::fixed)<<setprecision(3)<<1.2345<<endl;輸出"1.235"
              cout<<setiosflags(ios::scientific)<<12345.0<<endl;//輸出"1.234500e+004 "
              cout<<setprecision(3)<<12345.0<<endl;//輸出"1.235e+004 "
              return 0;
              }

            posted @ 2009-10-06 16:28 Error 閱讀(2097) | 評論 (2)編輯 收藏

            寂寞才說愛

            佛山和廣州之行讓我大開眼界:
            原來愛可以那么簡單,那么開放!
            原來這個世界上什么人都有,什么事都有!

            .......

            原來我很蠢!!!!
            將來步入社會不被淘汰才怪!!!!

            posted @ 2009-10-06 16:15 Error 閱讀(243) | 評論 (0)編輯 收藏

            一些想法

            關(guān)于怎樣才可以實(shí)現(xiàn)自己心目中的夢想:
            1、進(jìn)國內(nèi)有名大公司
            2、全額獎學(xué)金+公費(fèi)留學(xué)外國名校
            想來想去,覺得還是不要好高騖遠(yuǎn),急功近利(這幾年我失敗的原因就在于此),所以,還是一個月一個月的安排好自己的時(shí)間最好,不然最后恐怕是“心比天高,命比紙薄”,到頭來還不是竹籃打水一場空!

            這個月我的計(jì)劃是:
            1、學(xué)習(xí):每一科都要趕上去,現(xiàn)在看來只有用晚上的時(shí)間啦,因?yàn)榘滋觳皇巧险n就得來實(shí)驗(yàn)室,以后要經(jīng)常來實(shí)驗(yàn)室多學(xué)習(xí),多向師兄師姐和韓老師請教,多學(xué)點(diǎn)東西。期末我要考全年級第一!!!!
            馬拉戈壁,我就不信我考不到!!!你看看你的那些同學(xué),個個比你牛多了!!!!
            2、弄ACM:革命尚未成功,同志仍需努力。。。比起別人來,真的差距好大啊!!!!都怪自己大一一年的時(shí)間荒廢了這么多,現(xiàn)在要趕上別人,當(dāng)然困難啦!!!!可有什么辦法,這年頭,只有玩命的弄才有希望啊!
            3、弄MCM:沒辦法啊,為了那點(diǎn)學(xué)分啊!
            4、學(xué)精C++:做項(xiàng)目的需要啊!要多和夏師兄溝通一下,把ACE和OGRE弄通,把項(xiàng)目平臺搭建起來!
            5、情商:和人交往溝通的能力,作為領(lǐng)導(dǎo)的能力
            6、說話:口才啊
            7、做事
            8、心理素質(zhì):自信、幽默、開心

            posted @ 2009-10-06 15:55 Error 閱讀(164) | 評論 (0)編輯 收藏

            一切重新開始......

            這幾天學(xué)校因?yàn)轸[甲流鬧得很厲害,恰巧有人迫切想我去找她,就去了佛山和廣州,見到和經(jīng)歷了太多的人和事。覺得自己很不爭氣,哥為了我和這個家拼命的付出,而我呢,不思進(jìn)取,自甘墮落,貪玩好耍,虧我還有那么多好心人一直這樣關(guān)心我,呵護(hù)我!我怎么對得起他們啊!!我他媽的簡直連豬狗都不如!!!簡直就是人渣中的人渣!!!!

            思來想去,我決定,一切重新開始。。。。。。

            posted @ 2009-10-06 15:34 Error 閱讀(173) | 評論 (0)編輯 收藏

            僅列出標(biāo)題
            共2頁: 1 2 
            午夜精品久久久久久99热| 99久久无码一区人妻| 亚洲国产精品久久久久| 精品午夜久久福利大片| 久久亚洲中文字幕精品一区四| 久久久久国色AV免费观看| 人妻无码αv中文字幕久久琪琪布| 国产一区二区精品久久| 久久精品国产精品亚洲人人| 欧美日韩精品久久久久| 亚洲va久久久噜噜噜久久| 精品国产一区二区三区久久| 无码乱码观看精品久久| 国产精品无码久久久久| 97久久天天综合色天天综合色hd| 久久精品国产精品亚洲| 久久国产精品一国产精品金尊| 一级做a爰片久久毛片看看| 久久国产成人午夜aⅴ影院 | 久久久久久久免费视频| 精品综合久久久久久97超人 | www久久久天天com| 蜜臀av性久久久久蜜臀aⅴ麻豆 | 亚洲国产成人久久一区WWW| 999久久久免费精品国产| 午夜欧美精品久久久久久久| 欧美国产成人久久精品| 91精品国产高清久久久久久91| 亚洲AV乱码久久精品蜜桃| 亚洲精品乱码久久久久久不卡| 国产精品免费久久| 国产精品日韩深夜福利久久| 久久99国产精品久久99| 久久久久久久久无码精品亚洲日韩| 一本综合久久国产二区| 亚洲天堂久久久| 久久精品国产清自在天天线| 久久精品aⅴ无码中文字字幕不卡| 久久人人爽人人爽人人片av麻烦 | 亚洲国产成人精品91久久久| 国产视频久久|