# برنامه نویسی میکروکنترلر (MicroController) ها و MicroProcessor ها > برنامه نویسی سیستم های Embeded > ARM >  free کردن صحیح، آرایه رشته ای

## هادی2020

سلام به همه.
توی 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));



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

----------

