ncharmalloc sizeof charstrlen str 1 是什麼意思

2021-04-20 19:02:42 字數 2129 閱讀 8204

1樓:匿名使用者

void main()

for(i = 0; i < n; i++)printf("%s ", color[i]);//打出color[n]陣列共n個

printf("\n");

return 0;

} 這個程式實現的功能是輸入n<20個字串,每個字串長度小於10如果輸入"#"則表示輸入結束,最後打出輸入的字串。

2樓:匿名使用者

malloc函式用於向操作抄系統申請記憶體,bai宣告在stdlib.h中,原型du如下:

void *malloc(unsigned int num_bytes);

malloc申請num_bytes指定zhi大小的記憶體,成功則返回

dao指向這塊記憶體的指標,失敗則返回null。

這條語句含義就是申請記憶體,並將指標轉換為char *型別賦值給color[n],申請的大小為sizeof(char) * (strlen(str) + 1)。

sizeof(char)就是一個char型別佔用的空間大小,strlen(str)為字串str的長度,因為字串最後還有個'\0'表示字串結尾,所以這一塊就表示str字串佔用的記憶體空間的總大小。

3樓:匿名使用者

color[n] = (char *)malloc(sizeof(char)*(strlen(str)+1))

從左復到右講起, 首先制等號左邊是 一個

bai char* 的陣列的一個元素du,也就是zhi一個char* : color[n]; 右邊 是用 malloc分配堆空dao間記憶體, malloc的返回值型別是void*,需要用(char*)來強轉型別以和等號左邊匹配;malloc的 引數是 需要分配的位元組數,也就是 (sizeof(char)*(strlen(str)+1)),sizeof(char)是1,所以實際上就是 strlen(str)+1, strlen返回的是字串的長度(不包括最後一個'\0', 比如 strlen("hello")就是5), 為了儲存這個字串,就要分配長度+1(用來儲存『\0』)的空間。

說到這裡,這個程式的目的也就清楚了, 使用者輸入 顏色的名字,最後一個顏色用#號結束,然後將之列印出來。(我自己用vs2008執行了一遍,結果也如此)

c語言中(char *)malloc (sizeof (char));這行**是怎麼解釋的

4樓:匿名使用者

sizeof(char)計算char型別佔用的位元組數。sizeof(char)== 1

malloc申請動態記憶體

(char *)把指標強制轉換為char型別指標。

合起來就是動態申請一個char型別大小的記憶體。

int *t; t=(char*)malloc(n*sizeof(char)):c語言中什麼意思啊?求解答

5樓:匿名使用者

int *t;表示定義int型的指標變數t

(char*)實現指標的強制型別轉換(因為後面的那個函式返回值的型別是void型別的指標)

malloc還有後面的括號裡的整個是一個函式,返回void型指標,用來申請額外的記憶體空間,返回的指標指向所申請記憶體空間的首地址,若記憶體不夠申請失敗則返回null

malloc後面的括號裡的內容是對該函式輸入的引數,意義是所需要申請的記憶體的總大小,上面的式子中用的是一個運算結果的值當做引數值輸入

那個算式的n應該是你要儲存的物件的個數,sizeof函式用來算單個char型別變數的大小,相乘的結果就是總大小

整體來說,就是在為n個char型別的變數申請儲存空間,把申請到空間的首個單元的地址存到指標t中

6樓:匿名使用者

如果把malloc分配記憶體看作是買塊地皮,那麼這句話的意思就是我要申請買塊地,這塊地的大小是 n。然後系統分配了一塊地給你,但這塊地肯定有座標的對吧,不然你上哪兒去找到這塊的呢,所以用t這個變數把位置記錄起來,以後我想要在這塊地上造房子什麼的,直接從t中獲得位置。

7樓:匿名使用者

malloc是個函式表示開闢一塊記憶體空間 開多少 sizeof(char)表示一個char型別空間 乘上n就是就是所開空間的大小 然後最前面的(char *)表示開闢的空間是放char型別資料的

奧數中轉換單位1是什麼意思,單位1是什麼意思

找準單位 bai1 是解答分數 應用題du的關鍵。而有些分zhi數應用題dao中單位 1 不統版一,這就需要在 權解題時.首先轉換單位 1 統一標準.突破解題難點。有的題目單位 1 不統一,這時就要將它們的單位 1 統一到一件事物或一個整體上來.可通過擴倍的方法,巧妙地轉換單位 1 如 甲 乙 丙三...

在c語言中1是什麼意思,c語言中1是什麼意思

在c語言中 1 的意思是 將1的二進位制名 向左移20位。左移一位專相當於對該數屬 乘2,左移n位就相當於乘n個2。把1,位左移20位 按二進位制來移動 在32位機中,十進位制的1就是 00000000 00000000 00000000 00000001,位左移20位就是 00000000 000...

冰箱e1是什麼故障維,冰箱顯示E1是什麼意思?

冰箱顯示e1分兩種情況 溫控失靈導致冰箱顯示e1報錯,或者是製冷系統內的製冷劑洩漏使製冷量達不到要求後顯示e1報錯。檢查與溫控器相連的感溫管是否脫落,如果發現脫落,將其在原位固定。另外,溫控器使用時間久了之後,內部的觸點燒結,溫控器內的控制液洩漏,電子溫控的溫度感測器變值。如果是溫控失靈導致的故障,...