سلام یک آرایه درست کردم که تو یک حلقه تکراره که قراره کارکترهارو تو آرایه بزاره یک مشکلی که هست ارایه صفر و پر میکنم اما ارایه توش یکسری کارکتره دیگم توش داره اونا رو چحور میشه حذف کرد بعضی برنامه ها با نشانگر کار کردن.میشه توضیح بدید لطفا؟
اطلاعیه
Collapse
No announcement yet.
مشکل با آرایه
Collapse
X
-
پاسخ : مشکل با آرایه
نوشته اصلی توسط Robo-amir نمایش پست هاسلام
من که والا هیچی نفهمیدم .
یه کم واضح تر نوضیح بده و ترجیحا بخشی از کدت رو هم بنویس ..
int jj;
char lcd[16];
char aa[16];
int ll=0;
unsigned char kk;
flash unsigned char khoroji[]={0xef,0xdf,0xbf,0x7f };
flash unsigned char mask[3][4]=
{{'1','*','7','4'},
{'0','8','5','2'},
{'#','9','6','3'}};
int i=0;
unsigned char keypad(void){
char *aa=NULL;
while(1)
{
for (i=0;i<4;i++) {
int flag=4;
int flag1;
PORTC=khoroji[i] ;
if (PINC.1==0) flag=0,flag1=i;
if (PINC.2==0) flag=1,flag1=i;
if (PINC.3==0) flag=2,flag1=i;
while(PINC.1==0){};
while(PINC.2==0){};
while(PINC.3==0){};
if (!(flag==4)) {
kk=mask[flag][flag1];
}
if (flag==4) kk='n';
if (!(kk=='n'))
{
aa[ll]=kk;
ll++;
lcd_clear();
lcd_puts(aa);
delay_ms(100);
}
}
دیدگاه
-
پاسخ : مشکل با آرایه
نوشته اصلی توسط masror نمایش پست هاسلام یک آرایه درست کردم که تو یک حلقه تکراره که قراره کارکترهارو تو آرایه بزاره یک مشکلی که هست ارایه صفر و پر میکنم اما ارایه توش یکسری کارکتره دیگم توش داره اونا رو چحور میشه حذف کرد بعضی برنامه ها با نشانگر کار کردن.میشه توضیح بدید لطفا؟اگه بخای محتویاتشو به کلی پاک کنی میتونی از تابع زیر استفاده کنی،فرم نوشتنش اینطوره :
unsigned char array[64];
این تابع تمام خونه های آرایه رو null میکنه
memset(array,0,sizeof(array));
or
memset(array,'\0',sizeof(array));
ضمنا قبلشم باید فایل string.h رو به برنامت الحاق کنی
یه چیز دگ هم اینه که همیشه ارایتو یه خونه بیشتر از اونی که میخای تعریف کن،ینی اگه 32 تا میخای 33 تاش کن،بعدم اون خونه آخری رو عدد 0 یا کاراکتر '0\' قرار بده تا توابع بدونن که آرایه تموم شدهجدیدترین ویرایش توسط ardeshir74; ۲۱:۳۸ ۱۳۹۵/۰۹/۱۳.
- تشکرها 4
دیدگاه
-
پاسخ : مشکل با آرایه
اگر فقط می خوای خالیش کنی می تونی خودت یه کد ساده بنویسی :
کد:[LEFT]void Str_Cleaner(unsigned char *Str) { while(*Str) *(Str++) = 0;//Null '\0' }[/LEFT]
کد:[LEFT]void Str_Cleaner(unsigned char *Str , unsigned char Length) { while(Length) { *(Str++) = 0;//Null '\0' Length--; } }[/LEFT]
زمان تنها واحد حقیقی اندازه گیریه
زمان وجود ماده رو اثبات میکنه
بدون زمان هیچکدوم ما وجود نخواهیم داشت
زمان یکتاست
- تشکرها 1
دیدگاه
دیدگاه