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
char *join(const char **woerter, int anzahl, const char *sep) {
char *retval = NULL, *wort = NULL;
int seplen = 0, wortlen = 0, size = 0, len = 0;
if(woerter == NULL || anzahl == 0 || sep == NULL)
return NULL;
seplen = strlen(sep);
wort = *woerter++;
while(anzahl > 0 && wort != NULL) {
wortlen = strlen(wort);
size += wortlen + 1;
if(anzahl > 0) size += seplen;
if(retval == NULL) retval = (char *)malloc(size);
else retval = (char *)realloc(retval, size);
strncpy(retval + len, wort, wortlen);
len += wortlen;
if(anzahl > 0) {
strncpy(retval + len, sep, seplen);
len += seplen;
}
wort = *woerter++; --anzahl;
}
return retval;
}
Quoteda sagt er mir, dass er nicht void * zu char * convertieren koenne
das beweisst mal wieder, dass entweder keinen C compiler (sondern eine C++ compiler) benutzt oder du deinem C++ compiler nicht sagst, dass er den code als C code interpretieren soll.\n\n
<!--EDIT|esskar|1132427007-->