PDA

View Full Version : سوال: نحوه ملوک کردن



1myself
دوشنبه 01 دی 1393, 01:30 صبح
فرض کنید یک struct به نام x داریم که داخل این struct، یک متغیر y از نوع u* داریم.
اگر داشته باشیم struct *x zو آن را به تابعی به صورت z& به عنوان ارگومان بفرستیم و در داخل ان تابع بخواهیم کلا z را malloc کنیم و بعد داخل همان تابع کاری کنیم که پوینتر y داخل z به چند تا u اشاره کند با استفاده از malloc؟

rahnema1
دوشنبه 01 دی 1393, 06:59 صبح
#include <stdlib.h>
typedef struct u
{
//...
}u;
typedef struct x
{
u* y;
}x;
x* tabe()
{
x* arg = (x*)malloc(sizeof(x));
arg->y = (u*)malloc(sizeof(u) * 10);
return arg;
}
int main()
{
x* z = tabe();
free(z->y);
free(z);
}

1myself
دوشنبه 01 دی 1393, 09:40 صبح
سلام دوباره و با تشکر از پاسخ گوییتون
اگر میشه این کد رو به صورتی که در main برنامه ،z(که خود از نوع *x)است را به صورت (table(&z به تابع tabeمی فرستیم باز نویسی کنین .

rahnema1
دوشنبه 01 دی 1393, 10:22 صبح
#include <stdlib.h>
typedef struct u
{
//...
}u;
typedef struct x
{
u* y;
}x;
int tabe(x** arg)
{
*arg = (x*)malloc(sizeof(x));
(*arg)->y = (u*)malloc(sizeof(u) * 10);
if (*arg && (*arg)->y)
return 1;
return 0;
}
int main()
{
x* z = NULL;
if(tabe(&z))
{
// do something
}
free(z->y);
free(z);
}