2017-02-22 17 views
0

У меня есть следующее объявление: char name [size + 1] = {'\ 0'};, где размер имеет предопределенное значение. Я не хочу фиксировать размер массива. Я хочу знать, как объявить строку, которая будет содержать имя с динамическим lenth в C.Объявить строку динамической длины в C

Спасибо.

ответ

0

Вы можете сделать это легко с помощью указателей. Прежде чем идти на это, очистите свои концепции. Вот основные сведения: link.

0

Вы можете сделать это, используя malloc.

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

Подробнее об этом here.

Когда вы пишете char name[size + 1], память выделяется на стеке. Но с malloc он выделяется на кучу (динамическая память).

+0

Благодарим вас за разъяснение. char * name = (char *) malloc ((размер + 1) * размерof (char)); каково должно быть начальное значение переменной «размер»? поэтому у меня есть переменная 'typeName' и переменная 'name'. Имя переменной varaibale хранит строку символов в следующем формате: Auto_'typeName'_Workflow. Длина «typeName» определяется во время выполнения. имя символа [name_size + 1] = {'\ 0'}; sprintf (имя, «Авто_% s_Workflow», typeName); – Jazz

Смежные вопросы