簡體   English   中英

在C ++中為char數組分配固定的內存

[英]allocate fixed memory for char array in c++

以下代碼顯示了一個帶有64個塊的2d char數組。

char **arr= new char*[64];
for (int i = 0; i < 64; i++) {
    arr[i] = new char[64];
}

但是我想控制這個數組,就像我可以在C中分配固定內存一樣。

char **arr= malloc(sizeof(char *) * 64);
for (int i = 0; i < 64; i++) {
    arr[i] = malloc(64);
}

如何在C ++中實現它?

同樣,在C語言中,我們可以像這樣使用指針:

Mystruct *next_entry = (Mystruct *) ((char*) slot + SIZE;

我們可以計算指針地址並獲得下一個可用的空閑內存。

如果我想在C ++中做同樣的事情,該怎么辦?

您不需要任何額外的操作即可在c ++中進行相同的操作,並且您的new代碼等效於您的malloc代碼

char **arr    = malloc(sizeof(char) * 64); equiv  char **arr    = new char*[64];
       arr[i] = malloc(64);                equiv         arr[i] = new char[64];

除了這行中可能的錯字

char **arr    = malloc(sizeof(char) * 64);

哪個應該讀

char **arr= malloc(sizeof(char *) * 64);

這也將像在c中一樣工作

Mystruct *next_entry = (Mystruct *) ((char*) slot + SIZE;

盡管即使在c語言中,我也認為這違反了嚴格的別名規則,但是我不太確定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM