2017-02-22 10 views
0

次の宣言があります。char name [size + 1] = {'\ 0'};ここで、sizeはあらかじめ定義された値です。私は配列のサイズを修正したくありません。私はCで動的lenthと名前を保持する文字列を宣言する方法を知りたい。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