Hi,
I have some issue to understand how arrays works
I tried that below:
float* getFloatArray() {
float myfloatArr[5]={1.1,5.6,54.85,4.99,54.87};
return myfloatArr;
};
char** getCharArrayList() {
char* mycharArr[5]={"test","testdrtu","dgy","e","ghk"};
return mycharArr;
};
int getFloatArraySize(float* floatArr) {
return (sizeof(floatArr));
};
int getCharArraySize(char** charArrList) {
return (sizeof(charArrList));
};
int getFloatArrayLength(float* floatArr) {
return (sizeof(floatArr)/sizeof(floatArr[0]));
};
int getCharArrayLength(char** charArrList) {
return (sizeof(charArrList)/sizeof(charArrList[0]));
};
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("FLOAT* SAMPLE=={1.1,5.6,54.85,4.99,54.87}");
float myfloatArray[5]={1.1,5.6,54.85,4.99,54.87};
Serial.println("FLOAT* SIZE=="+String(sizeof(myfloatArray)/sizeof(myfloatArray[0])));
Serial.println("FLOAT* LENGTH=="+String(sizeof(myfloatArray)));
Serial.println("CHAR** SAMPLE=='test','testdrtu','dgy','e','ghk'");
char* mycharArray[5]={"test","testdrtu","dgy","e","ghk"};
Serial.println("CHAR** SIZE=="+String(sizeof(mycharArray)/sizeof(mycharArray[0])));
Serial.println("CHAR* LENGTH=="+String(sizeof(mycharArray)));
Serial.println("FLOAT* FROM FUNCTION SIZE=="+String(sizeof(getFloatArray())));
Serial.println("FLOAT* FROM FUNCTION LENGTH=="+String(sizeof(getFloatArray())/sizeof(getFloatArray()[0])));
Serial.println("CHAR** FROM FUNCTION SIZE=="+String(sizeof(getCharArrayList())));
Serial.println("CHAR** FROM FUNCTION LENGTH=="+String(sizeof(getCharArrayList())/sizeof(getCharArrayList()[0])));
Serial.println("FLOAT* INTO FUNCTION SIZE=="+String(getFloatArraySize(myfloatArray)));
Serial.println("FLOAT* INTO FUNCTION LENGTH=="+String(getFloatArrayLength(myfloatArray)));
Serial.println("CHAR** INTO FUNCTION SIZE=="+String(getCharArraySize(mycharArray)));
Serial.println("CHAR** INTO FUNCTION LENGTH=="+String(getCharArrayLength(mycharArray)));
}
and my output is:
FLOAT* SAMPLE=={1.1,5.6,54.85,4.99,54.87}
FLOAT* SIZE==5
FLOAT* LENGTH==20
CHAR** SAMPLE=='test','testdrtu','dgy','e','ghk'
CHAR** SIZE==5
CHAR* LENGTH==20
FLOAT* FROM FUNCTION SIZE==4
FLOAT* FROM FUNCTION LENGTH==1
CHAR** FROM FUNCTION SIZE==4
CHAR** FROM FUNCTION LENGTH==1
FLOAT* INTO FUNCTION SIZE==4
FLOAT* INTO FUNCTION LENGTH==1
CHAR** INTO FUNCTION SIZE==4
CHAR** INTO FUNCTION LENGTH==1
has you can see, the size and length of my Float and String Arrays have different behaviors depending on the use of them.
Can you tell me what is the best practice and how to use Arrays and function.
Generally we make function to process data in Arrays or to get Arrays from a process, but it's quite complicated if we cannot have a constant array length information.
Can you help me.
Thanks