[英]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.