請問 VC 和 malloc

發布 健康 2024-08-21
9個回答
  1. 匿名使用者2024-02-01

    位元組。 malloc 應用程式的記憶體是 void 指標型別,所以在應用程式之後,需要將前乙個請求轉換為所需的型別,如您的示例 (u32*) 所示,因此 malloc(8) 是 8 個位元組。

    2.第二句話不會錯。 由於您已經在第一句話中申請了 mybuf 的記憶體,因此 mybuf 已經是 8 位元組的 u32* 指標型別。 指標和陣列的使用基本相同,但存在一些差異。

    例如,引數有時是不同的。

    3. 這超出了陣列邊界。 根據記憶體訪問機制,mybuf[33] 會繼續訪問記憶體外的第 33 個空間,如果空間已經用完,程式就會崩潰。 如果不使用它,你會很幸運,不會崩潰並出現亂碼......

  2. 匿名使用者2024-01-31

    1.malloc 中引數的含義是分配的位元組數。

    2.在 mybuf[0] 中的作用相當於 * 表示,即 =*(mybuf+1)。

    指向不確定的記憶,所以後果是不確定的,它可能是正確的,也可能是崩潰的!

  3. 匿名使用者2024-01-30

    1:為 8 個位元組。

    2:mybuf 被定義為陣列或指標,在用法上非常相似。 這裡沒有語法問題。

    3:這是不可預測的,如果你幸運的話,程式會崩潰。 不幸的是,該程式可以正常工作。

  4. 匿名使用者2024-01-29

    看起來你要編寫乙個分配空間的函式 f。

    1.識別符號 parr 對應於乙個指標變數,該變數通常為 4 或 8 個位元組。 此變數用於儲存 struct student* 型別的記憶體位址。

    2.函式呼叫 f(parrr) 將變數的內容傳遞給 f,即結構 student * 型別的位址。 但是,由於識別符號的作用域,f 不知道此指標變數的記憶體位置,並且它僅對堆疊空間中指標變數的副本進行操作。

    在這種情況下,無法通過正常方式修改指標變數 parr 的值。

    3.函式呼叫 f(&parr) 將變數的記憶體位址傳遞給 f,f 是 struct student 型別的位址值。 f 使用此位址,您可以操作此位址中的資料以訪問或修改指標變數 parr。

  5. 匿名使用者2024-01-28

    "但是為什麼要傳送 f(&parr)?"

    這句話從何而來?

  6. 匿名使用者2024-01-27

    Free 將報告錯誤。

    我的理解是這樣的:當 malloc 分配記憶體時,除了你請求的 1 個位元組外,還有一些管理資訊和乙個指向下乙個分配塊的指標,當你實際使用的空間超過你請求的空間時,指向下乙個分配塊的指標將被破壞,問題可能很嚴重。

  7. 匿名使用者2024-01-26

    應為“空閒”提供您請求的記憶體,並且無法檢查額外的記憶體。

  8. 匿名使用者2024-01-25

    您可以隨心所欲地申請。

  9. 匿名使用者2024-01-24

    C語言中的Malloc是乙個動態記憶體分配函式。

    函式原型:void *malloc(unsigned int num bytes);

    引數:num bytes 是乙個無符號整數,表示分配的位元組數。

    返回值:如果分配成功,它將返回指向已分配記憶體的指標(此儲存中的初始值不確定),否則返回未確定型別的空指標,void * 可以指向任何型別的資料,更具體地說,當您請求記憶體空間而不知道使用者使用此空間儲存的資料型別(例如 char 或 int or.

    功能:分配長度為 num 位元組的記憶體塊。

    注意:當記憶體不再使用時,應使用 free() 函式釋放記憶體塊。 函式返回的指標必須正確對齊,以便它們可以與任何資料物件一起使用。

    關於這個函式的原型,以前 Malloc 返回乙個 char 指標,新的 ANSIC 標準規定這個函式返回乙個 void 指標,所以必要時需要進行型別轉換。

    示例:包括""

    #include""包含 malloc() 函式。

    int main(void)

    sprintf(a,"%s","helloworld");//"helloworld"寫入 A 指向的位址。

    printf("%s",a);輸出使用者輸入的資料。

    free(a);釋放使用的記憶體位址。

    return0;示例 2:是否存在記憶體洩漏? }

相關回答
11個回答2024-08-21

p 是指標,指標是資料型別,而不是陣列,陣列是資料結構,陣列可以被認為是儲存在“連續儲存空間”中的相同資料型別的資料元素的集合。 >>>More

13個回答2024-08-21

沒有成員方法,但在 VC++ 的結構中,寫控制項,可以檢視 API,尤其是 VC++6,這在 C 語言中是不可用的。 >>>More

10個回答2024-08-21

您安裝的防毒軟體是卡巴斯基,它與VC6衝突,沒有好的解決方案,只需關閉卡巴斯基,或換成其他防毒軟體即可。 >>>More

6個回答2024-08-21

VCD和CD質量哪個更好,好東西是**!?

是在談論汽車VCD和CD嗎? >>>More

9個回答2024-08-21

#include

有了這句話,就不能有使用命名空間 std; >>>More