如何检测数组的结尾?

我写了一个类,其中有一个指向数组第一个元素的指针,我不知道它的大小,但是我需要知道何时有最后一个元素。

目前,我为该方法提供了一个额外的变量,其中包含它的大小。我想将其删除。

我的方法

#define NOP //__asm__("nop\n\t")

//Setup the objekt
SR::SR(int DS, int SHCP, int STCP){
  pinMode(DS, OUTPUT);
  pinMode(SHCP, OUTPUT);
  pinMode(STCP, OUTPUT);
  this->_DS = DS;
  this->_SHCP = SHCP;
  this->_STCP = STCP;
}

//!!!!!!!!!!at "*muster" you have to send an pointer on the first element of an Array!!!!!!!!!!!

//to shift a Muster in the register

void SR::musterIn(bool *muster, int length){
  for(int i=0; i<length; i++){
    //set datapin
    digitalWrite(_DS, *(muster+i));

    //shift in register memory
    digitalWrite(_SHCP, HIGH);
    NOP;
    digitalWrite(_SHCP, LOW);
  }

  //set to output
  digitalWrite(_STCP, HIGH);
  NOP;
  digitalWrite(_STCP, LOW);
}

谢谢, 浮点数

评论
  • ~签名
    ~签名 回复

    我没有确切的解决方案,但我认为您可以结合使用LINQ表达式来解决此问题。涉及.IndexOf,.ElementAt和/或.LastOrDefault的东西,用于检测数组的最后一个元素。