سلام به همه.
توی free کردن حافظه مشکل دارم.
آرایه ای داریم با تعداد سطرها و ستون های متغیر با زبان C. چون برای میکروها کد نویسی می کنم داخل c standard کامپایل نکردم. توی keil کد می زنم. [lpc-1768]


char **buf = malloc(3 * sizeof(*buf));

if(buf == NULL) // print error
{
#ifdef debug_atCommand
sprintf (rx, "\nsendAT(): memory error, %s", ATcommand);
UART2_SendString(rx);
#endif
}
else
{
i=0;
do {

buf[i]=malloc(10 * sizeof(*(buf[i]))); // or buf[0] = (char *) malloc( sizeof (char) * 10);
__nop(); __nop(); __nop(); __nop(); __nop();
if(buf[i] == 0) //error
{ ...
}
else
{
//for example
if (i == 0)
buf[i] = "reza";
else
buf[i] = "ali";

}
i++;
}while (i<countOfResponse);
}
//--------------------------------------------------------------
// for (int i = 0; i <2; i++)
// {
// char* currentIntPtr = buf[i];
// free(currentIntPtr);
// }


//free(buf);
//free((*buf));



از روش های زیادی استفاده کرده ام اما باز هم با ریستد شدن دستگاه مواجه می شم.