1樓:匿名使用者
1.你可以設立一個指標intpointer(指標和陣列本來就是一家人):int *intpointer;
然後當取得了i的值後用:intpointer=(int *)malloc(i*sizeof(int));
int main()
2樓:時空魔法
用new 陣列長度給定後。如果想增加。只能重新分配空間。儲存元素,然後在進行刪除
3樓:匿名使用者
用realloc函式,在原基礎上再次分配
4樓:小爺
#include
using namespace std;
int main()
p=new int[len];
for(int y=0;y }p[j]=c; j++; while(cin.peek()==' ') //遮蔽空格if(cin.peek()=='\n') }for(int n=0;n return 0;} 5樓:匿名使用者 int *ch = null; int length = 0; cin>>length; ch = new int[length]; ...... deletech; ch = null; c++動態定義陣列長度 6樓:匿名使用者 你可以先定義一個全域性指標變數(如果要求整型陣列的話就是int* a,字元型就是char* a等),指標你可以把它理解成陣列int a,這裡陣列a就相當於int*a,但這時指標還沒有分配記憶體空間,只要分配了就相當於陣列,但比陣列的優勢在於可以動態定義長度,如果分配了空間之後a中儲存的值就是分配的空間的位置 ,比如分配空間後a中值為2000,表明它指向2000這個位置,由於是全域性變數,因此函式執行完,a也不會消失,因此一直都有a=2000(除非在函式中被重新分配了空間) 再分配記憶體區域,用new函式,比如整型指標,就用語句a=new int[n+1],就相當於此時已經定義了陣列a[n+1],後面的操作可以就相當於有了a[n+1]該怎麼用就怎麼用 最後當你把陣列使用完畢後,要釋放掉記憶體空間,免得空間浪費,用delete釋放掉記憶體空間,以後在想給a分配空間再用new分配就好了 如何求 c++ 動態陣列的長度 7樓: 陣列申明在函式內部,屬於區域性變數,存放在了棧上,看看陣列佔用的記憶體大小:1000000=1000*1000然後乘以int型資料長度 1000*1000*4byte約等於4m,而棧的預設記憶體空間為1m左右,所以會導致記憶體溢位解決這個問題,可以將陣列申明在全域性儲存區或堆上即可方法一:申明為全域性變數 方法二:存放在堆上 ch(e,b:b,),確認後則返回查詢的結果「」。 特 樓主 首先我不知道你用的是什麼環境,我用的是win7 vs2008 long a 256000 很明顯你定義 a 陣列時候已出了。把陣列的長度定義小一點就可以通過了。vc 的堆疊大小預設是 1m,不過可以在編譯選項中設定。你的陣列肯定超1m棧空間.執行時棧溢位 因為你定義的是區域性變數,在棧裡分配空... 1 先說二維,可以這麼理解 int n 3 有3個int 那麼,int m 5 3 有5個int 3 賦值時 n 1 3把3給1號 m 4 m 4 是個int 3 型別,這麼賦值,也就是這麼賦值 m 4 的 0 是5 m 4 0 5 m 4 1 9 m 4 2 4 懂了嗎?三維甚至更多維大同小異,比... 在c 中 大家可能都會使用new關鍵字來 在堆中 動態分配 方法是 int arr new int 變數或數值 可以動態分配指定長度的陣列 在c語言中要使用 malloc calloc 來進行分配 如果要賦值的話可以在申請完記憶體後 使用迴圈進行賦值也可以使用c庫中提供的記憶體操作函式 memset...c陣列長度問題
用c語言動態三維陣列用C語言,動態三維陣列
c 怎麼動態分配陣列並賦值,C 怎麼動態分配一個陣列並賦值