1樓:
在c++中 大家可能都會使用new關鍵字來 在堆中 動態分配 方法是:
int *arr = new int[變數或數值];
可以動態分配指定長度的陣列 在c語言中要使用 malloc calloc 來進行分配
如果要賦值的話可以在申請完記憶體後 使用迴圈進行賦值也可以使用c庫中提供的記憶體操作函式
memset(開始地址,要賦的值,長度); 如
int *arr = new int[10]; memset(arr,0,arr+10);
這樣就將這個陣列中的10個元素都賦值為0
如果在c99中棧中的陣列也可以動態分配 不過就不可以在宣告的時候進行初始化了
int arr[變數]; 這樣寫也是可以通過的 不過不能寫成這樣
int arr[變數] = {}; 如果不使用變數是可以寫右邊的大括號進行初始化的
但也同樣可以使用迴圈或 memset進行初始化
希望對你有幫助
2樓:愛好_問問
用new建立陣列不能初始化,單個變數可以初始化
3樓:匿名使用者
{ int x,n,i=0; cout
4樓:梅花香如故
是想說動態控制陣列的長度吧,我也還沒學呢,要用vector吧
c++動態建立一個一維陣列 ,賦值 並顯示每個元素的值,最後釋放記憶體
5樓:it孤鶩
#include
using namespace std;
void main()
c++中如何實現一組陣列賦值給另一組
6樓:寒寒家
//使用下面的copy_array函式就可以了//可以設定陣列的大小
#include
using namespace std;
void copy_array(int *src, int *tar, int n)
int main()
7樓:匿名使用者
1、同型別陣列
例如對於 int a[n],b[m];
// 假定陣列b已賦值,將其複製到a時
如果m <= n,則有 memcopy(a,b,sizeof(int) * m);,完全複製
如果m > n,則有 memcopy(a,b,sizeof(int) * n);,部分複製
其他型別(double,float等)類同2、不同型別陣列
只能逐個進行轉換後複製,細節就不用說了。
8樓:匿名使用者
用for迴圈來實現,或者用指標,把陣列的每個元素逐一賦值給另一個陣列
9樓:匿名使用者
同一種型別的用for迴圈就可以做到
對於不同型別的先轉換一下型別
c語言如何給動態分配的陣列賦值
10樓:匿名使用者
那樣賦值也只能用可變參了.
void set(int *value,int num,...)int *b = (int *)malloc(3 * sizeof(int));
set(b,3, 4,5,6);//set (設定變數,設定的數量,值1,值2...)
11樓:匿名使用者
1、當成普通陣列使用,用for迴圈即可賦值。
2、例程:
#include
#include
int main(void)
for (i = 0; i < 10; i++)free(a);/*動態分配的空間需要用free()函式釋放*/return 0;}
12樓:匿名使用者
int *b;
b=(int *)malloc(3 * sizeof(int));
首先分配陣列空間,現在假設要對陣列的第1個元素賦值為4,第2個為5,第3個為-4
*(b+0)=4;
*(b+1)=5;
*(b+2)=-4;
13樓:匿名使用者
如果都知道要賦多少個值了,動態分配有何意義……
c 問題關於char的動態分配記憶體
你程式 邏輯bai 有問題。dustrlen是求字串zhi長,字串必須以 0 結束,你的字dao符沒有回以這個字元結束,因此求答得的結果是不確定的。不一定是16。下面,給你一個正確的例子了。char a a new char 10 a 0 a a 1 b a 2 0 int temp strlen ...
C語言malloc動態分配記憶體為什麼叫動態分配記憶體?感覺它分配的時候還是要人為指定大小,而不能根據
同學你誤解了,雖然是要認為指定大小的,但是可以在程式執行時用scanf 函式來隨意指定一個大小,如果不用動態記憶體的話,你在程式執行之前就要指定好大小。不明白可以繼續問!動態的意思是指隨時用到隨時分配,不用的時候隨時可以銷燬。動態記憶體分配不需要象陣列等靜態記憶體分配方法那樣需要預先分配儲存空間,而...
c為字串陣列動態賦值的問題,C 為字串陣列動態賦值的問題
改用list吧.方法一是沒有new 沒有分配空間 方法二是在new的時候沒有指定大小,預設是0個元素,所以對其任意一個元素賦值都是越界.在c 中,陣列一般用來存放大小確定的資料.如果陣列大小未知,建議使用list lista new list a.add we messagebox.show a 0...