Och menno,
so richtig wills noch nicht.
Ich hab in meiner Funktion die eine art join - Funktion ist versucht das ueber statische pointer zu machen aber da gibts auch nur trouble. jetzt hab ich das mit malloc probiert wobei ich dabei nicht weis wie ich da das
free einbauen soll.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
char * join(char ** woerter,int anzahl,char * str) {
int letter_count=0;
int sl=strlen(str);
for (int i=0;i<anzahl;i++) {
letter_count+=strlen(woerter[i]);
if (i<anzahl-1)
letter_count+=sl;
}
char * pstr=malloc(sizeof(char)*(letter_count+1));
if (pstr==NULL)
exit(1);//Error to allocate Memory
char * joined=pstr;
for (int i=0;i<anzahl;i++) {
char * wp=woerter[i];
int wl=strlen(wp);
for (int j=0;j<wl;j++) {
*pstr=*wp;
pstr++;
wp++;
}
if (i<anzahl-1) {
char * sp=str;
for (int k=0;k<sl;k++) {
*pstr=*sp;
pstr++;
sp++;
}
}
}
*pstr=0;
return joined;
}
Da sagt er mir, dass er nicht
void * zu
char * convertieren koenne. Auf wikipedia stehts aber so als beispiel mit int da.
Und wenn ich es statisch versuche sagt er mir immer
non-lvalue in assignment ???? Was mir auch immer diese Fehlermeldung sagen soll.
Hier der Code mit dem Statischen Versuch.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
char * join(char ** woerter,int anzahl,char * str) {
int letter_count=0;
int sl=strlen(str);
for (int i=0;i<anzahl;i++) {
letter_count+=strlen(woerter[i]);
if (i<anzahl-1)
letter_count+=sl;
}
char pstr[letter_count+1];
char * joined=pstr;
for (int i=0;i<anzahl;i++) {
char * wp=woerter[i];
int wl=strlen(wp);
for (int j=0;j<wl;j++) {
*pstr=*wp;
pstr++;
wp++;
}
if (i<anzahl-1) {
char * sp=str;
for (int k=0;k<sl;k++) {
*pstr=*sp;
pstr++;
sp++;
}
}
}
*pstr=0;
return joined;
}
Sorry dass ich schon wieder nerve. ich hoffe ich peil's irgendwann.
Gruß Alex