2017-02-22 2 views
0

Ich habe die folgende Deklaration: char name [size + 1] = {'\ 0'}; wo Größe einen vordefinierten Wert hat. Ich möchte die Größe des Arrays nicht festlegen. Ich möchte wissen, wie man einen String deklariert, der einen Namen mit dynamischer Länge in C enthält.Deklariere String mit dynamischer Länge in C

Vielen Dank.

Antwort

0

Sie können dies einfach mit Hilfe von Zeigern tun. Bevor Sie das tun, löschen Sie Ihre Konzepte. Hier ist link für grundlegende Anleitung.

0

Sie können es mit malloc tun.

char* name = (char*)malloc((size+1) * sizeof(char)); 

Lesen Sie darüber here.

Wenn Sie char name[size + 1] schreiben, wird der Speicher auf dem Stack zugewiesen. Aber mit Malloc ist es auf dem Heap (dynamischer Speicher) zugeordnet.

+0

Vielen Dank für die Erklärung. char * name = (char *) malloc ((Größe + 1) * Größevon (Char)); Was sollte der Anfangswert der Variablen 'Größe' sein? so habe ich eine Variable 'typeName' und eine Variable 'name'. Der Name 'varaibale' speichert eine Zeichenfolge im folgenden Format: Auto_'typeName__Workflow. Die Länge von 'typeName' wird zur Laufzeit festgelegt. Char Name [Name_Size + 1] = {'\ 0'}; sprintf (Name, "Auto_% s_Workflow", TypName); – Jazz