اطلاعیه

Collapse
No announcement yet.

مشکل با آرایه

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل با آرایه

    سلام یک آرایه درست کردم که تو یک حلقه تکراره که قراره کارکترهارو تو آرایه بزاره یک مشکلی که هست ارایه صفر و پر میکنم اما ارایه توش یکسری کارکتره دیگم توش داره اونا رو چحور میشه حذف کرد بعضی برنامه ها با نشانگر کار کردن.میشه توضیح بدید لطفا؟

    #2
    پاسخ : مشکل با آرایه

    سلام
    من که والا هیچی نفهمیدم .
    یه کم واضح تر نوضیح بده و ترجیحا بخشی از کدت رو هم بنویس ..
    زمان تنها واحد حقیقی اندازه گیریه
    زمان وجود ماده رو اثبات میکنه
    بدون زمان هیچکدوم ما وجود نخواهیم داشت
    زمان یکتاست

    دیدگاه


      #3
      پاسخ : مشکل با آرایه

      نوشته اصلی توسط Robo-amir نمایش پست ها
      سلام
      من که والا هیچی نفهمیدم .
      یه کم واضح تر نوضیح بده و ترجیحا بخشی از کدت رو هم بنویس ..
      unsigned char aaa[];
      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);

      }

      }

      دیدگاه


        #4
        پاسخ : مشکل با آرایه

        نوشته اصلی توسط masror نمایش پست ها
        سلام یک آرایه درست کردم که تو یک حلقه تکراره که قراره کارکترهارو تو آرایه بزاره یک مشکلی که هست ارایه صفر و پر میکنم اما ارایه توش یکسری کارکتره دیگم توش داره اونا رو چحور میشه حذف کرد بعضی برنامه ها با نشانگر کار کردن.میشه توضیح بدید لطفا؟
        فرض کن آرایه ای داری به اسم array که 64 خونه ایه ینی اینطور تعریفش کردی:

        unsigned char array[64];
        اگه بخای محتویاتشو به کلی پاک کنی میتونی از تابع زیر استفاده کنی،فرم نوشتنش اینطوره :

        memset(array,0,sizeof(array));
        or
        memset(array,'\0',sizeof(array));
        این تابع تمام خونه های آرایه رو null میکنه
        ضمنا قبلشم باید فایل string.h رو به برنامت الحاق کنی

        یه چیز دگ هم اینه که همیشه ارایتو یه خونه بیشتر از اونی که میخای تعریف کن،ینی اگه 32 تا میخای 33 تاش کن،بعدم اون خونه آخری رو عدد 0 یا کاراکتر '0\' قرار بده تا توابع بدونن که آرایه تموم شده
        جدیدترین ویرایش توسط ardeshir74; ۲۱:۳۸ ۱۳۹۵/۰۹/۱۳.

        دیدگاه


          #5
          پاسخ : مشکل با آرایه

          اگر فقط می خوای خالیش کنی می تونی خودت یه کد ساده بنویسی :
          کد:
          [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]
          زمان تنها واحد حقیقی اندازه گیریه
          زمان وجود ماده رو اثبات میکنه
          بدون زمان هیچکدوم ما وجود نخواهیم داشت
          زمان یکتاست

          دیدگاه

          لطفا صبر کنید...
          X