如何創建數組結構創建對象數組並分配
0
A
回答
1
看起來您正在嘗試創建動態數組或堆棧。您可以通過使用一個結構大大簡化事情:
struct Stack {
int capacity;
int index;
int *data;
};
然後,你要的這100個(不知道爲什麼)...
struct Stack *pml = malloc(100 * sizeof(struct Stack));
然後初始化
for (int i = 0; i < 100; i++) {
pml[i].capacity = 10;
pml[i].index = 0;
pml[i].data = malloc(10 * sizeof(int));
}
然後你可以用函數設置數據
void Push(struct Stack *stack, int value) {
// Check for reallocation
if (stack->index == stack->capacity) {
stack->capacity *= 2; //Assumes capacity >= 1
stack->data = realloc(stack->data, sizeof(int) * stack->capacity);
}
// Set the data
stack->data[stack->index++] = value;
}
並調用它像
Push(&pml[n], 234); // Where n < 100, is the nth stack in the array
,當然你需要free()
一切在一些點。
(注意,您應該添加錯誤檢查。)
相關問題
- 1. 創建動態對象到父對象並分配鍵和值?
- 2. 循環並創建對象數組
- 3. VBScript:通過創建對象分配數組(2)
- 4. 創建對象的數組
- 5. 創建數組類對象
- 6. 創建3D數組對象
- 7. 創建對象的數組
- 8. 創建I類對象數組創建
- 9. 創建對象時的內存分配
- 10. 故障與創建和分配對象
- 11. 內存分配沒有創建對象
- 12. 創建一個數組對象數組?
- 13. 配對/分組對象數據
- 14. Java:超類數組對象分配有子類數組對象
- 15. 一個對象被創建並分配出新的或聲明
- 16. 分配隨機數到對象數組
- 17. 如何從文件中讀取數據並創建對象並將其分配給數組?
- 18. 從鍵值對創建對象數組
- 19. 如何分組數組但不創建新對象?
- 20. 將創建的對象分配給選定的對象
- 21. 在創建對象之前分配對象(ObjC)
- 22. 創建對象時需要將對象ID分配給字段
- 23. 創建JComboBox並稍後分配數據
- 24. 深合併非匹配對象數組
- 25. 從對象數組創建數據表
- 26. 二維數組和分配對象
- 27. 靜態分配繼承對象數組
- 28. 動態分配對象2d數組lua
- 29. 分配對象的實例爲數組
- 30. 將n維數組分配給對象
不要將'malloc'和朋友的結果放在C中!注意:代碼中沒有2D數組。你有一維數組指針指向一維數組。 – Olaf
看起來更像是'struct'的數組和用例。一般來說,如果你想存儲異構數據,使用'struct'。可能與一個_flexible陣列member_。 – Olaf
'pml [X] [pml [0]] + = 1;'這看起來不正確。 'pml [0]'是一個指針。 –