2017-02-22 30 views
0

我有以下聲明:char name [size + 1] = {'\ 0'};其中大小有一個預定義的值。我不想修復陣列的大小。我想知道如何聲明一個字符串,它將在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((size + 1)* sizeof(char));應該是變量'size'的初始值是什麼? 所以我有一個變量'typeName'和一個變量'name'。 varaibale'name'按以下格式存儲一串字符:Auto_'typeName'_Workflow。 'typeName'的長度在運行時確定。 char name [name_size + 1] = {'\ 0'}; sprintf(名稱,「Auto_%s_Workflow」,typeName); – Jazz