Tôi là một chút mới đối với malloc và C nói chung. Tôi muốn biết làm thế nào tôi có thể, nếu cần thiết, mở rộng kích thước của một mảng có kích thước cố định khác với malloc.C: Mở rộng một mảng với malloc
Ví dụ:
#define SIZE 1000
struct mystruct
{
int a;
int b;
char c;
};
mystruct myarray[ SIZE ];
int myarrayMaxSize = SIZE;
....
if (i > myarrayMaxSize)
{
// malloc another SIZE (1000) elements
myarrayMaxSize += SIZE;
}
- Ví dụ trên nên nói rõ những gì tôi muốn đạt được.
(Bằng cách này: Tôi cần điều này cho một thông dịch viên tôi viết: Làm việc với một số tiền cố định của các biến và trong trường hợp nhiều hơn là cần thiết, chỉ cần phân bổ cho họ động)
'x = realloc (x, newsize)' là rò rỉ bộ nhớ đang chờ xảy ra. –
Điểm tốt. Tôi đã cập nhật mã ví dụ để xử lý các lỗi thất bại. –
'myarray = myrealloced_array)' nên là 'myarray = myrealloced_array;' :) – Saul