Vielen Dank für Eure Antworten zu aller Erst!
Markus M. schrieb:
> Du solltest noch einen String in deinen dymanisch angelegten Speicher
> kopieren. So hat Du nur einen Speicherbereich der nicht mit '\0'
> abgeschlossen ist (Ein C-String muss aber per Definition damit enden)
> und printf() stürzt sich in den Tod.
>
> Grüsse
Es geht darum, dass der String zuerst eingelesen wird, um daraus den
benötigten Speicher zu kalkulieren und dementsprechend dynamisch zu
reservieren. Woher weiss ich, ob der String mit '\0' endet? Bei der
Abfrage mit
1 | char funcStr[]="test_text"
|
2 | printf("%c", funcStr[9]);
|
wird mir ein Leerzeichen angezeigt, ist es das?
Rufus Τ. Firefly schrieb:
> Alex L. schrieb:
>> char *mainPtr;
>> mainPtr=testFunc();
>>
>> printf("%s", *mainPtr);
>
> Was vermutest Du, wird printf hier übergeben, und was erwartet
> printf, wenn %s im Formatstring steht?
Ich vermute, dass die Adresse des ersten Zeichen des Strings in der
Funktion an die main-Funktion übergeben wird und auf genau diese der
Pointer *mainPtr zeigt.
Ich hoffe, Ihr könnt damit etwas anfangen!