Hellihello
char ** // das verstehe ich nicht? Wozu steht das da?
// Soll das der Typ (Rückgabewert) der Funktion sein?Syntaktisch gesehen ja. Darüber habe ich mich auch gewundert. Also möchte frankx eigentlich einen Zeiger auf Zeiger auf char zurückgeben - im Prinzip ein Array aus Strings.
Das passt aber nicht so ganz mit der Arbeitsweise der Funktion zusammen, außerdem hat er ohnehin versäumt, ein Ergegbnis zurückzuliefern.
char **
csvlinesplitting(char *line)
{
int elemcounter;
elemcounter = 0;
int counter;
counter = 0;
char elements[5][120];
printf("Elements am Anfang: %s\n\n", elements);
while(*line != '\n') {
if (*line != ',') {
elements[elemcounter][counter] = *line;
elements[elemcounter][counter+1]=0;
counter++;
}
else {
printf("\n\nes ist ein komma da: %c - elementsinhalt ist : %s\n", *line, elements[elemcounter]);
printf("lineinhalt ist : %s\n", line);
counter=0;
elemcounter++;
elements[elemcounter+1][0]=0;
}
line++;
}
printf("\n\nENDE: %c - elementsinhalt ist : %s\n", *line, elements[elemcounter]);
return elements;
}
mault er
csv2.c:35: warning: return from incompatible pointer type
csv2.c:35: warning: function returns address of local variable
mach ich "return **elements";
csv2.c:35: warning: return makes pointer from integer without a cast
in main dann:
//init **var
char **main_elements;
// sollte die rückgabe von der Funktion csvlinesplitting übernehmen
main_elements = csvlinesplitting(char *line);
geht wohl analog zu JS oder PHP nicht, oder?
Dank und Gruß,