|< 1 2 3 >| | 29 Einträge, 3 Seiten |
QuoteDer Speicher für entsprechendes muss erst reserviert werden. In C(++) gibt man deshalb bei der definition eines Array immer an wie lang es sein muss und bei Variablen einen spezifischen Typ. Dadurch weiß der Compiler wie viel Speicher(im Ram oder direkt Register) er reservieren muss.
QuoteWie willst du das Problem variablen Speichers mit Pointern lösen? Versteh ich irgendwie nicht...
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
36
37
38
39
#include <stdio.h>
char *StrCreate(const char *str) {
int len;
char *retval;
if(str == NULL) return NULL;
len = strlen(str);
retval = (char *)malloc(len + 1);
strncpy(retval, str, len);
return retval;
}
char *StrConcate(char *str1, const char *str2) {
int len1, len2;
if(str1 == NULL) return NULL;
if(str2 == NULL) return str1;
len1 = strlen(str1);
len2 = strlen(str2)
str1 = (char *)realloc(str1, len1 + len2 + 1);
strncpy(str1+len1, str2, len2);
return str1;
}
int main(int argc, const char *argv[]) {
char *string;
string = StrCreate("Das ist ein String!\n");
printf("%s", string);
string = StrConcate(string, "Noch mehr Text\n");
printf("%s", string);
return 0;
}
|< 1 2 3 >| | 29 Einträge, 3 Seiten |