2017-04-19 23 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; 
} 

これはかなりシンプルに見えますが、コードブロックでコンパイルするとエラーが発生します。 エラー: 'new'は宣言されていません(この関数では初めて使用されます) 提案がありがとうございます。ありがとうございました。2D配列** p

答えて

0

C++コンパイラでコンパイルしていますか? 'new'はC++のキーワードです。 C言語でコンパイルする場合は、代わりにmalloc()を使用してください。

+0

ご協力ありがとうございます。コンパイラはGNU GCC Compilerです。昨日、別の同様のCコードは、 "削除"部分がないうまく動作します。今日は何か変だ。私は初心者で、youtubeのいくつかのvedioに従っています。 https://www.youtube.com/watch?v=868qXWoGS9E –

+0

私は、「新規」と「削除」はCではなく、Cではないと言っています。 #include #include int main(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"を使って間違いを犯しました。ご協力いただきありがとうございます。 –