2017-04-19 1 views
0
int main() 
{ 
    int ** ary; 
    ary = new int*[3]; 
    int i; 
for(i = 0; i < 3; ++i) 
{ 
    ary[i] = new int[4]; 
} 

for(int i = 0; i < 3; ++i) 
    { 
    delete [] ary[i]; 
} 
delete [] ary; 


    return 0; 
} 

매우 간단 해 보이지만 코드 블록으로 컴파일 할 때 오류가 발생합니다. 오류 : '새'신고되지 않음 (이 기능에서 처음 사용) 제안 사항에 감사드립니다. 고맙습니다.** 배열을 사용하는 2D 배열

답변

0

C++ 컴파일러로 컴파일 하시겠습니까? 'new'는 C++ 키워드입니다. C로 컴파일하는 경우 malloc()을 대신 사용하십시오.

+0

도움 주셔서 감사합니다. 컴파일러는 GNU GCC 컴파일러입니다. 어제 또 다른 비슷한 C 코드는 "삭제"부분이 없어도 잘 작동합니다. 오늘 무언가가 이상해진다. 나는 신참이며 유튜브에서 일부 베디 오를 따라 갔다. https://www.youtube.com/watch?v=868qXWoGS9E –

+0

'new'와 'delete'는 C가 아니라 C를위한 것입니다. #include #include int 주 (void) { \t int ** ary; \t ary = (int **) malloc (3 * sizeof (int *)); \t int i; 위한 \t (I = 0; I는 3 <; I ++) { \t \t \t 진 [I] = (INT의 *)의 malloc (sizeof 연산자 (INT)); \t}의 \t (I = 0; I <3; I ++) { \t \t \t없는 (진 [I]); \t} \t 무료 (ary); \t return 0; } – Kirby

+0

시도해 보았습니다. 그러나 나는 어제 코드 블록에 c를 사용하여 프로젝트를 만들었다는 것을 여전히 믿을 수 없다. 그리고 나는 "new"를 사용하여 실수를했다. 그러나 어제는 잘 작동하지만 오늘은 그렇지 않다. 당신의 도움을 주셔서 감사합니다. –