2017-02-22 2 views
0

다음 선언이 있습니다. char 이름 [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'변수가 있습니다. 문자 '이름'은 다음 형식의 문자열을 저장합니다. Auto_'typeName'_Workflow. 'typeName'의 길이는 런타임에 결정됩니다. char 이름 [name_size +1] = { '\ 0'}; sprintf (이름, "Auto_ % s_Workflow", typeName); – Jazz