我有:
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;
我该怎么做?
答案 0 :(得分:3)
您可以像普通数组一样使用分配的内存:
list[0] = 1;
list[1] = 2;
/* etc. */
修改强>
你正在做的是增加“数组”中的第一个条目,它可能包含你不期望的值,然后你重新分配指针使它不再指向你分配的内存,依此类推。此外,如果你真的想要“增加分配内存的地址”,它就像list++
一样简单,但是这也改变了指针,因此你松开原来分配的地址,以后不能释放它(除非你保存它。)
答案 1 :(得分:2)
你可以使用循环
for(int i = 0; i < 10; i++) {
list[i] = i+1;
}