2013-10-15 2 views
-3

필자가 작성한 프로그램의 일부는 일반적인 방법 대신 malloc을 사용하여 배열을 만들어야합니다. 나는 사용자가 숫자를 입력하고, 그 번호에 MAX라는 이름을 할당하고, malloc()을 사용하여 숫자 2와 함께 배열을 생성해야한다. 어떻게 코딩 할 것인가?C에서 malloc()을 사용하여 특정 크기의 배열을 어떻게 만듭니 까?

+1

좋은 책으로 시작하십시오. – Rohan

+0

아침에 1시에 친구 집에서하는 일이 어렵다. ... – user2313123

+0

그래서 나는 인터 웹에 열중하고있다. –

답변

2

malloc()으로 "배열"을 만들려면 배열의 크기 (바이트)를 지정하고 해당 유형의 포인터에 반환 값을 할당하십시오. 이것을 1 바이트보다 큰 오브젝트 배열로 만들려면 오브젝트의 수를 sizeof 연산자로 얻을 수있는 오브젝트의 크기로 곱할 수 있습니다.

예를 들어, 당신과 같이 오십 int 객체의 "배열"을 만들 수 있습니다

int *ar = malloc(50 * sizeof (int)); 
+0

감사합니다. 그게 내가 알아야 할 모든 것. – user2313123

+0

이 작업을 수행 할 때 다음과 같은 오류 메시지가 나타납니다. int * ar = malloc (50 * sizeof (int)); – user2313123

+0

Microsoft Visual Studio와 같이 충분히 오래된 C 컴파일러를 사용하는 경우 혼합 된 문과 선언을 지원하지 않습니다. 함수의 시작 부분에'int * ar = NULL; '을 넣고, 할당 할 필요가있는 곳에'ar = malloc (무엇이든);'을 넣는다. 물론 "무엇이든"에 해당하는 값으로 대체하십시오. –

0

당신은 할 수의 :

T *dynamic_memory; 
....... //Get the desired array size from user input and store in 'array_max_size' 
dynamic_memory=malloc((sizeof(T) * array_max_size); 

T : 배열의 데이터 유형

그런 다음 dynamic_memory을 사용할 수 있습니다.

관련 문제