c語言問題,C語言問題 int p int malloc sizeof int

時間 2021-09-03 07:05:17

1樓:樂跑小子

int *p;//定義一個指向整型的指標變數p=(int*)malloc(sizeof(int));

/*建立(動態申請)一塊記憶體空間,建立的記憶體空間為一個整型變數的長度,並把建立的空間地址轉化成指向整型的指標賦值給前面的整型指標變數p*/

如果這塊動態記憶體不釋放,相當於把一個整型變數的地址給前面的指標例如:#include

#include

int main()

2樓:手機使用者

義例項實際上是指標陣列的定義。

指標陣列是指所定義陣列的每個陣列元素都是一個相應資料型別的指標,開設空間的操作可以應用迴圈語句進行,例如:對於char *p[10]; 可以應用

for(i=0;i<10;i++)

p[i]=(char *)malloc(sizeof(char)*n); //為每個指標申請開設n字元的儲存空間

開設後,對於p的使用與二維陣列的使用格式類似,可以有效的使用兩個下標,

如 p[0][0]='a';

還可以像每個指標中賦值字串: p[2]="beijing"; 當然字串長度應該小於n。

而陣列指標,是指定義為指向某個固定大小順序空間的指標,定義的格式如下:

char (*pa)[10]; //定義一個指向擁有10元素的字元陣列的指標,

int (*p)[10];

應用格式可以參考下述程式,申請空間、賦值、輸出後,可以觀察到100被賦值到第五行第十個元素,指標可以像二維陣列一樣通過兩個下標引用所申請開設的空間。

#include

main()}

3樓:小飛花兒的憂傷

sizeof是個關鍵字,用來計算指定資料型別或指定變數的空間大小(以位元組為單位)

int a;

sizeof(a) = sizeof(int) = sizeof a;

malloc的引數是位元組長度

4樓:匿名使用者

判斷int型別的長度符

作用就是返回一個物件或者型別所佔的記憶體位元組數。

5樓:匿名使用者

sizeof (int)是獲得int型資料的大小,整個語句是動態分配sizeof (int)大小的記憶體,並用指標p指向這個分配的局域。

6樓:匿名使用者

sizeof()函式是返回指定資料型別的儲存空間大小,sizeof(int)返回int的儲存空間的大小,int的儲存空間需要2位元組。

7樓:朱珈藍賀撥

sizeof(int)就是求int這種資料型別所需的儲存空間的大小,類似的還可以用sizeof(float)等等

8樓:匿名使用者

c語言中判斷資料型別長度符

1) sizeof( object ); // sizeof( 物件 );   2) sizeof( type_name ); // sizeof( 型別 );   3) sizeof object; // sizeof 物件;

9樓:匿名使用者

補充一下樓上的, 以前分長整形和短整型,短整形是2個位元組,長的是4個位元組。

但是現在已經不分長短了,統一4個位元組。

10樓:黃逸代霞綺

malloc申請了4個位元組正確,p指標不是存放第一個位元組的資料,而是存放第1個位元組的指標(地址),在32位系統下,任何指標佔記憶體都是4個位元組,而p也是4個位元組,所以就能儲存申請到的第1個位元組的指標。

計算機c語言中 int *p; p=(int*)malloc(sizeof(int)); 什麼意思

11樓:匿名使用者

申請一個int大小的記憶體空間,這個空間的地址以int型別賦給p。

12樓:

動態申請一塊記憶體,長度為一個int的位元組數,視作業系統16/32/64而定。

記憶體首地址儲存在變數 p 中。

13樓:匿名使用者

int *p;//定義一個指向整型的指標變數p=(int*)malloc(sizeof(int));

/*建立(動態申請)一塊記憶體空間專,屬建立的記憶體空間為一個整型變數的長度,並把建立的空間地址轉化成指向整型的指標賦值給前面的整型指標變數p*/

如果這塊動態記憶體不釋放,相當於把一個整型變數的地址給前面的指標例如:#include

#include

int main()

c語言高手進 int * p = (int *)malloc(sizeof(int));

14樓:手機使用者

義例項實際上是指標陣列的定義。

指標陣列是指所定義陣列的每個陣列元素都是一個相應資料型別的指標,開設空間的操作可以應用迴圈語句進行,例如:對於char *p[10]; 可以應用

for(i=0;i<10;i++)

p[i]=(char *)malloc(sizeof(char)*n); //為每個指標申請開設n字元的儲存空間

開設後,對於p的使用與二維陣列的使用格式類似,可以有效的使用兩個下標,

如 p[0][0]='a';

還可以像每個指標中賦值字串: p[2]="beijing"; 當然字串長度應該小於n。

而陣列指標,是指定義為指向某個固定大小順序空間的指標,定義的格式如下:

char (*pa)[10]; //定義一個指向擁有10元素的字元陣列的指標,

int (*p)[10];

應用格式可以參考下述程式,申請空間、賦值、輸出後,可以觀察到100被賦值到第五行第十個元素,指標可以像二維陣列一樣通過兩個下標引用所申請開設的空間。

#include

main()}

15樓:樂跑小子

int *p;//定義一個指向整型的指標變數p=(int*)malloc(sizeof(int));

/*建立(動態申請)一塊記憶體空間,建立的記憶體空間為一個整型變數的長度,並把建立的空間地址轉化成指向整型的指標賦值給前面的整型指標變數p*/

如果這塊動態記憶體不釋放,相當於把一個整型變數的地址給前面的指標例如:#include

#include

int main()

16樓:程式新手

前面的 (int *)是強制轉換,後面的malloc(sizeof(int)); 是在記憶體中建立一個連續長度為sizeof(int)的區間之後再返回該區間的首地址給int * p

17樓:小飛花兒的憂傷

sizeof是個關鍵字,用來計算指定資料型別或指定變數的空間大小(以位元組為單位)

int a;

sizeof(a) = sizeof(int) = sizeof a;

malloc的引數是位元組長度

18樓:匿名使用者

malloc()函式的作用是分配製定位元組數的空間sizeof()為單目運算 求出對應型別所佔用的位元組數(型別名)為單目運算 為強制型別轉換

要注意的是 malloce函式申請得到的空間是無型別的空間 必須強制轉換成對應指標可以指向的空間的型別

這裡定義的是int *p 所以p指標只能指向int型空間sizeof(int) 求得int型別所佔的位元組數malloc(sizeof(int)) 申請一個跟int所佔的空間大小一樣的空間

(int*)malloc(sizeof(int)) 將申請得到的空間地址轉換成了int型別空間地址

最後就可以賦值給指向int型空間的p指標了

c語言中動態記憶體分配的問題 int * p=(int*)malloc(8) 這樣理解對不對:(in

19樓:匿名使用者

(int*)表示將動態分配的8個位元組的記憶體空間型別強制轉換為 "1" 個指向int的指標型別

另外上述**的寫法既無可讀性,也無可移植性

int * p=(int*)malloc(2*sizeof(int));

c語言 int *a = (int*)malloc(n*sizeof(int)); 是什麼意思呀

20樓:天雲一號

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存入到哪個記憶體單元(因為指標未指向具體的記憶體單元(此時稱該指標為野指標)),所以執行的時候會出錯(編譯沒錯)。

21樓:匿名使用者

動態分配記憶體給指標a,類似於分配a[n]大小的資料空間(n是常量時),只是這種方式下,n可以作為一個變數執行時確定,較為靈活,但是也要相應執行free操作,否則會出現記憶體洩漏。

22樓:匿名使用者

定義一個指標,為該指標分配一個一塊n個int空間的記憶體

當然malloc還可能會返回null就是了

23樓:匿名使用者

sizeof(int)就是int型別佔用的記憶體大小

C語言問題,C語言問題C語言問題

選a首先,空格也是一種字元,b d選項分別把空格賦給了c1,c1 其次,c選項不完整,排除 不僅a這樣,10a20b也是可以的。 聽不清啊 答案a 10a 20b cr 是正確的。因為scanf d c 時,會忽略數字前面的空格,遇到非數字字元就會結束讀取 非數字字元會留待下一次讀取,即被後面的 c...

C語言問題,C語言問題

include void main 最後輸出 1 2 2 3 cca 2,b 2,c 4 2.設計一個程式 計算0xaf 01234567,字元 a 的ascii碼值 十進位制 是多少,101 代表的字元是什麼,32678 1的準確結果是多少,1.456e6 35的準確結果是多少,12345 6的準...

C語言問題,C語言問題

符合,相當於一個字元,ascii字元可以直接轉成short整型數字。101 不符合,這是一個字串,不能作為常數。不符合,因為 會對雙引號轉義,找不到另一個雙引號。會出錯。而且就算是 也不符合,因為編譯器會把它理解成一個字串,而非單個字元。e3不符合。019不符合,0開頭代表8進位制數,不能出現9。0...