如何创建数组结构创建对象数组并分配
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]'是一个指针。 –