看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《pharaoh7 (狂風.怒浪)》之銘言: : 遇到的問題: (題意請描述清楚) : 我想問的是 我用一個指標陣列,每一個指標陣列 : 指向函式(函式的功用是從keyborad中讀取一個字串 : 這程式的目的是 可以輸入一連串的字串,但不像二維陣列那樣 固定大小 : 用這樣是希望 依字串的大小來配空間 : 有問題的code: (請善用置底文標色功能) : #include <cstdlib> : #include <iostream> : #include<string> : using namespace std; : char* getname(void); : int main(int argc, char *argv[]) : { : char* name[5]; : for(int i=0;i<5;i++){ : name[i]=getname(); //好像是卡在這兒有問題......請問是怎麼錯的@@ : for(int i=0;i<5;i++) : cout<<name<<" at "<<(int*)name<<endl; : //delete [] name; : system("PAUSE"); : return EXIT_SUCCESS; : } : char* getname() : { : char temp[80]; : cout<<"plz input name:"; : cin>>temp; : char* pn=new char [strlen(temp)+1]; : strcpy(pn,temp); : return pn; : } : */ : 補充說明: : 我比較想問的是觀念,覺的這樣應該是可行的 : 但是查網路一下,好像說這是不好的做法? : 請問一下 我哪兒 觀念錯了 : 而且如果程式要照我上面需求 來寫 : 要怎麼改 程式才會執行.... : 想不太出來... : 謝謝各位前輩指教一下 #include <iostream> #include <cstdlib> #include <cstring> // Integrated Development Environment // Visual C++ using namespace std; // char* getname(void); void main(int argc, char** argv) { char* name[5] = {NULL}; for(int i = 0; i < 5 ; i++){ name[i] = getname(); // 顯示字串 cout<<(&name[i])<<" at "<<name[i]<<endl; } // 下面要逐一刪除動態配置的空間 for (int i = 0; i < 5; i ++) { if ( name[i] !=NULL ) { delete name[i]; } } // 因為 *name[5] 本身是靜態的,可以不用管它 system("PAUSE"); } char* getname() { char temp[80]; cout<<"plz input name:"; cin>>temp; char* pn = new char [strlen(temp)+1]; strcpy( pn, temp); return pn; } -- 耗呆小綿羊~~~個人網頁:http://tw.myblog.yahoo.com/mjshya/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.121.5.245
johnhmj:註解變亂碼?!該不會是全形半形的關係吧! =_=||| 01/13 22:36