1樓:天雲一號
int *a=(int *)malloc(n*sizeof(int)); 表示定義一個int型別的指標變數a,並申請n*sizeof(int)個位元組(即4*n個位元組)的儲存空間。
malloc是在c語言中是一個申請記憶體單元的函式。
函式原型:void *malloc(unsigned size);
功 能:分配size個位元組的記憶體空間舉例說明如下:
// 下面的定義方法是正確的
int *a=(int *)malloc(n*sizeof(int)); // 定義指標,並分配記憶體單元
*a = 4; // 將值存入到指標a所指向的記憶體單元中// 下面的定義方法就會出錯
int *a; // 定義指標,沒有分配記憶體單元*a = 4; // 此時系統不知道該將4存入到哪個記憶體單元(因為指標未指向具體的記憶體單元(此時稱該指標為野指標)),所以執行的時候會出錯(編譯沒錯)。
2樓:匿名使用者
動態分配記憶體給指標a,類似於分配a[n]大小的資料空間(n是常量時),只是這種方式下,n可以作為一個變數執行時確定,較為靈活,但是也要相應執行free操作,否則會出現記憶體洩漏。
3樓:匿名使用者
定義一個指標,為該指標分配一個一塊n個int空間的記憶體
當然malloc還可能會返回null就是了
4樓:匿名使用者
sizeof(int)就是int型別佔用的記憶體大小
計算機c語言中 int *p; p=(int*)malloc(sizeof(int)); 什麼意思
5樓:匿名使用者
申請一個int大小的記憶體空間,這個空間的地址以int型別賦給p。
6樓:
動態申請一塊記憶體,長度為一個int的位元組數,視作業系統16/32/64而定。
記憶體首地址儲存在變數 p 中。
7樓:匿名使用者
int *p;//定義一個指向整型的指標變數p=(int*)malloc(sizeof(int));
/*建立(動態申請)一塊記憶體空間專,屬建立的記憶體空間為一個整型變數的長度,並把建立的空間地址轉化成指向整型的指標賦值給前面的整型指標變數p*/
如果這塊動態記憶體不釋放,相當於把一個整型變數的地址給前面的指標例如:#include
#include
int main()
p=(int*)malloc(sizeof(int)*(n+1))是什麼意思
8樓:普壽謇密
就是給p分配n+1個整數空間
相當於p
=new
int(n+1);即p為n+1大小的整數陣列!
9樓:運嘉禽書
1、sizeof(int):sizeof是操作符,這裡是計算int型別資料所佔記憶體大小,根據不同的系統會有不同的值,在32位機器上其值為4
2、m*n*sizeof(int):m和n應該為變數或預定義值,其計算結果應為一數值
3、malloc(m*n*sizeof(int)):意思是申請上述過程計算的數值大小的記憶體
4、p應為一指向int型別陣列的指標,其值為上述過程分配的記憶體首地址
C語言問題,C語言問題C語言問題
選a首先,空格也是一種字元,b d選項分別把空格賦給了c1,c1 其次,c選項不完整,排除 不僅a這樣,10a20b也是可以的。 聽不清啊 答案a 10a 20b cr 是正確的。因為scanf d c 時,會忽略數字前面的空格,遇到非數字字元就會結束讀取 非數字字元會留待下一次讀取,即被後面的 c...
c語言,c語言,C語言中 與 的區別
第4題 include using namespace std void main else 這兒是隨機生成 else 這兒是隨機生成 int main 第7題 include strinv char str str n 0 int main 本來想幫你全做的,不過6,7好像有人做了,那就幫你做了4...
c語言求解,C語言求解?
鐵柺季 當第一次進入pr 函式並執行到scanf函式處時,讀取一個字元 a 此時在此pr 函式中字元變數ch的值即為 a if判斷讀取的字元是否為 並不是,因此進入一個內層函式pr 中。在執行這個pr 函式時,對外層而言只是執行一條語句而已。是在執行完這條語句之前,將不會執行後面的內容的。在這個內層...