-1
我在C中創建自定義內存分配器,但使用先前在其中分配的指針移動到我的「mem」數組中時遇到問題。我需要將一個索引移動到左邊,這樣我可以看到在我嘗試釋放的那個塊之前的塊是否爲空。但移動指針不能按我的意願工作。 那麼如何在指針之前移動一個索引?使用指針瀏覽數組使用指針
int main()
{
char mem[50];
char *pointer;
char *ptr_toFree;
pointer=(char *) &(mem[10]);
pointer = "hello";
int num = 10;
mem[9] = num;
ptr_toFree=(char*)(pointer-1);
printf("Value of mem[9] = %d\n", *ptr_toFree);
return 0;
}
'pointer'指向靜態數組''hello''的第一個元素。 'pointer-1'具有未定義的行爲。 – melpomene
FWIW,'pointer =(char *)&(mem [10]);'只是一種複雜的寫入方式'pointer = mem + 10;' –
您的程序可以縮減爲'printf(「%d \ n」 ,「你好」[ - 1])',這顯然是無效的。 – melpomene