c語言高手進 intpintmalloc

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

1樓:手機使用者

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

指標陣列是指所定義陣列的每個陣列元素都是乙個相應資料型別的指標,開設空間的操作可以應用迴圈語句進行,例如:對於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()}

2樓:樂跑小子

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

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

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

#include

int main()

3樓:程式新手

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

4樓:小飛花兒的憂傷

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

int a;

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

malloc的引數是位元組長度

5樓:匿名使用者

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

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

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

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

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

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

6樓:匿名使用者

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

7樓:

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

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

8樓:匿名使用者

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

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

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

#include

int main()

C語言程式設計題目,高手進

喬巴的海賊精神 include define size 10 總共的人數 define n 3 報到n出局 struct child 定義鍊表 child size int lastchild struct child p else 否則的話,指標向下移動 return p num void mai...

求助!!C語言高手幫忙!!急,c語言高手進開幫幫忙 急

7 3 8 11 9 58 10 j i j i printf n 11 a i a i 12 x x 1 三 include int f int n return s int cal int n return s void main 就這兩個題還叫高手幫忙?我估計會數學的,基本上都可以幫你解決了 ...

二級c語言問題高手進吧

這題該選a 題意是 定義了char st how are you 這樣乙個字元指標,a b c d四個選項中 那個用法沒有錯誤,就是這四句話哪個既沒有語法詞法錯誤,也沒有語義錯誤。a 選項正確,是從 st 4 的位址開始取字元賦給 a 1 的位址,就是把 are you 分別賦給a 1 a 2 a ...