dynamische Speicherreservierung/ Verständnisproblem

Gast #3691459
Lesenswert?
• ▲
▼
Hallo
wird bei dem "Kommentar 1" Speicher für ein Text mit der Länge der 
Zufallszahl angelegt?

1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <time.h>
4
#define maxlen       70
5
#define ARRAYLENGTH 3
6

7
char* zeichenarray [ARRAYLENGTH] ={0};
8

9
char* zufalltext ()
10
{
11
    int zufallszahl=0;
12
    int z=0;
13
    char *text;
14
    zufallszahl=rand() % maxlen+1;  
15
    text = malloc( zufallszahl+1);  //1) wird hier Speicher für ein Text   
16
    text[zufallszahl]='\0';         // mit der Länge der Zufallszahl angelegt?   
17
    for (z=0; z<zufallszahl ;z++)
18
    {
19
        text[z]='A'+ rand() %26;
20

21
    }
22
    return text;
23
}

weshalb muss es nicht heißen
1
text = malloc [ zufallszahl+1];??
bei
1
text = malloc ( zufallszahl+1);
 hätte ich gedacht das Speicher für ein Zeichen reserviert wird und dann 
mit dem Buchstaben der der Zufallszahl +1 entspricht initialisiert wird.

Grüße Trudi

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren