Dynamic memory arrays have a fixed size. What is the purpose of using a dynamic memory array vs. a fixed-size memory array? What makes them dynamic?
1 Answer
in solidity, fixed arrays are allocated in memory or storage at compile time, which makes them more efficient in terms of gas costs and faster to access than dynamic arrays. A dynamic array, however, can change in size during runtime. Dynamic arrays are allocated on the heap and require more gas costs to access and modify elements compared to fixed-size arrays.
One key advantage of dynamic arrays is their flexibility to adjust their size, which makes them suitable for storing large data where the size is not known in advance. However, this flexibility comes at the cost of higher gas costs and slower execution time.
So, fixed-size arrays are more efficient in terms of gas costs and faster to access, while dynamic-size arrays are more flexible but require more gas costs and are slower to access. The choice between them depends on your use case
Hope this helps
-
Thanks! I think dynamic arrays in memory cannot adjust their size, and thus I'm wondering what their purpose is for. From the solidity documentation: docs.soliditylang.org/en/latest/… "Memory arrays with dynamic length can be created using the new operator. As opposed to storage arrays, it is not possible to resize memory arrays (e.g. the .push member functions are not available). You either have to calculate the required size in advance or create a new memory array and copy every element."– Danny BCommented Feb 23, 2023 at 18:56
-
1Dynamic memory arrays are mainly used when you want to create an array with a size that is not known at compile-time, and you want to allocate memory for it during the runtime of the program.– DevXGuyCommented Feb 24, 2023 at 2:45