2017-03-27 26 views
0

我想爲一個整數數組如何將整數數組分配給特定的地址?

ptr=malloc(length*sizeof(int)); 

,這將給我的指針分配的內存分配內存。我知道我可以用*(ptr + k)來訪問這些值,其中k是整型數組中的位置。但是有沒有一種方法來定義一個新的數組

int allocarray[length]; 

,然後分配allocarray地址PTR,這樣我就可以用

allocarray[k] 

訪問存儲的值?我試過以下不起作用:

allocarray=ptr; 

謝謝你的幫助。

+1

只要寫'int * allocarray';然後'allocarray = ptr;'。 –

+5

但是你已經可以簡單地寫'ptr [k]'。不需要先將它分配給另一個變量。 –

+2

或甚至只是簡單地寫''ptr [k]'這是'*(ptr + k)'的簡寫。 –

回答

1

如果你像上面那樣聲明一個數組,它將被自動分配。但是,如果你說:

int *allocarray = (int *)malloc(length*sizeof(int)); 

您可以使用語法allocarray[k]仍然可以訪問元素ķ

+1

不要施放'malloc'的結果。 – letmutx

+0

爲什麼需要(int *)部分? – Mark

+2

它不是........使用[標籤:c] – LPs

相關問題