簡體   English   中英

C數組64位增量

[英]C array 64 bit increment

我有:

uint64_t *list;

if((list = malloc(10 * sizeof(uint64_t))) == NULL){
    errx(1, "malloc");
} 

我需要填充此數組,增加其地址。

我的意思是:

(*list)++;
list = 1;
(*list)++;
list = 2;
(*list)++;
list = 3;
(*list)++;
list = 4;

我怎么做?

您可以像普通數組一樣使用分配的內存:

list[0] = 1;
list[1] = 2;
/* etc. */

編輯:您正在做的是增加“數組”中的第一個條目,該條目可能包含一個您不期望的值,然后重新分配指針,使其不再指向您分配的內存,依此類推。 另外,如果您真的想“增加分配的內存的地址”,它就像list++一樣簡單,但是這也改變了指針,因此您松開了原始分配的地址,以后無法釋放它(除非您保存它)。

你可以使用循環

for(int i = 0; i < 10; i++) {
    list[i] = i+1;
}

暫無
暫無

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

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