I
iverson702
Grünschnabel
Hallo Zusammen,
beim ausfuehren des Programms (siehe unter), bekomme ich folgender Fehler :
Warning: function returns address of local variable. Ich weisse nicht wieso.
-Wie kann ich diese Fehlermeldung beseitigen?
Was ich machen moechte ist folgendes.
Die Arrayswerte, die in ErgBuffer[k] geschrieben werden, sollen zurueck gegeben werden und nicht mit Printf auf dem Commando gezeigt werden. Also die Rueckgabe soll in der Methode GetArrayCut geschehen, weil diese Werte wo anders spaeter gebraucht werden.
-Wie kann ich das so machen, dass mir die markeiten Bereiche (in dem Fall, die Arrayswerte in ErgBuffer[k]) in GetArrayCut zurueck gegeben werden sollen, ohne die printf.
/* Array_Cut.c */
#include <stdio.h>
#include <stdlib.h>
int Start_Cut; //Anfangbereich
int End_Cut; //Endbereich
unsigned char* GetArrayCut ( unsigned char *Buffer,int Start_Cut , int End_Cut)
{
/*typedef uchar unsigned char;*/
const size_t buf_length = ( End_Cut - Start_Cut) + 1;
unsigned char ErgBuffer[buf_length];
int i, k;
for (i = Start_Cut, k = 0; i <= End_Cut; i++, k++)
{
ErgBuffer[k] = Buffer; /*ergebnisarray faengt bei 0 an!!*/
return ErgBuffer;
}
}
int main ()
{
unsigned char liste[] =
{1,21,213,245,54,12,33,45,56,2,5,3,6,5,4,7,8,9,200,125,147,123};
int i;
int Start = 2 ;
int End = 21;
unsigned char *result = GetArrayCut ( liste, Start, End ) ;
}.
PS: Bitte wenn moeglich koennt ihr die Aenderung dran schreiben?
Besten Dank.
Iverson702
beim ausfuehren des Programms (siehe unter), bekomme ich folgender Fehler :
Warning: function returns address of local variable. Ich weisse nicht wieso.
-Wie kann ich diese Fehlermeldung beseitigen?
Was ich machen moechte ist folgendes.
Die Arrayswerte, die in ErgBuffer[k] geschrieben werden, sollen zurueck gegeben werden und nicht mit Printf auf dem Commando gezeigt werden. Also die Rueckgabe soll in der Methode GetArrayCut geschehen, weil diese Werte wo anders spaeter gebraucht werden.
-Wie kann ich das so machen, dass mir die markeiten Bereiche (in dem Fall, die Arrayswerte in ErgBuffer[k]) in GetArrayCut zurueck gegeben werden sollen, ohne die printf.
/* Array_Cut.c */
#include <stdio.h>
#include <stdlib.h>
int Start_Cut; //Anfangbereich
int End_Cut; //Endbereich
unsigned char* GetArrayCut ( unsigned char *Buffer,int Start_Cut , int End_Cut)
{
/*typedef uchar unsigned char;*/
const size_t buf_length = ( End_Cut - Start_Cut) + 1;
unsigned char ErgBuffer[buf_length];
int i, k;
for (i = Start_Cut, k = 0; i <= End_Cut; i++, k++)
{
ErgBuffer[k] = Buffer; /*ergebnisarray faengt bei 0 an!!*/
return ErgBuffer;
}
}
int main ()
{
unsigned char liste[] =
{1,21,213,245,54,12,33,45,56,2,5,3,6,5,4,7,8,9,200,125,147,123};
int i;
int Start = 2 ;
int End = 21;
unsigned char *result = GetArrayCut ( liste, Start, End ) ;
}.
PS: Bitte wenn moeglich koennt ihr die Aenderung dran schreiben?
Besten Dank.
Iverson702