2013-04-16 2 views
-3

아래 코드가 제대로 작동하려면 왜 힙 할당이 필요한지 궁금한가요?배열 포인터에 힙 할당이 필요한 이유는 무엇입니까? (오류 : 예상 ''(함수 스타일 캐스트 또는 형식 구성의 경우) '' '

답 예 Pointers and assignment)

:

#include <iostream> 
#include <fstream> 

using namespace std; 
int *array; 
int main(){ 
    array = int array[100]; 
} 

컴파일러 에러를 생성

test.cpp:7:14: error: expected '(' for function-style cast or type construction 
     array = int array[100]; 
      ~~~^
1 error generated. 

그러나 새로운 = int 배열 [100]; 작동하는 것 같습니다. 왜 ?

+0

둘 모두 오류입니다. 너 여기서 뭘하려고하는거야? – ecatmur

+0

언어 구문에서 수정 된 특정 사항이 있으므로 배우기 만하면됩니다. 왜 그런 언어가 아닌 그런 이유 *는 없습니다. 그 문법을 잘 받아 들일 수는 있지만 C++이 아니기 때문입니다. –

+0

저는 자바에서 배열을 정의하는 방법을 사용하려고합니다. –

답변

2

동적 할당이 필요하지 않습니다. 그러나 배열을 가리 키도록 포인터를 할당하려면를 차례로 배열이 필요합니다

int local_array[100]; 
array = local_array; 

귀하의 코드는 배열을 선언하고 표현식에서 그 선언을 사용하려고 시도합니다; C++은 단순히 선언문과 표현식을 결합시키지 않습니다.

관련 문제