يعني همو كدي كه نوشتيد من بايد mallocرو بيرون از تابع زماني كه ميخوا ازش استفاده كنم ايجاد كنم؟
بله.
مثالی برای نحوه ی استفاده :
void input_array(int *, int, int);
int main()
{
int *myArray = (int *)malloc(4 * 5 * sizeof(int));
input_array(myArray, 4, 5);
return 0;
}
void input_array(int* array, int r, int c)
{
int i, j;
for (i = 0; i < r; i++)
{
for (j = 0; j < c; j++)
{
printf("enter array[%d][%d]\n", i, j);
scanf("%d", array);
array++;
}
}
}
در این قطعه کد ما ابتدا فضای مورد نیاز برای آرایه را تخصیص میدیم و این فضا را به اشاره گر myArray انتساب میدیم.
int *myArray = (int *)malloc(4 * 5 * sizeof(int));
و بعد این اشاره گر را به همراه طول و عرض آرایه (ماتریس) به تابع ارسال می کنیم تا اونو با مقادیر ورودی پر کنه.
input_array(myArray, 4, 5);