私はJavaで1年以上プログラミングしてきましたが、CocoaとObjective C - Up and Runningという本からuniで勉強しながら、C/objectiveCをゆっくりと教えています。私はまだC言語の構文上の違いをjavaに慣れ親しんでいる入門的な章を辿り、特にポインタに関する動的メモリのセクションを見てきました。 、整数のポインタを作成し、それをメモリの10個のブロックを割り当て、数字の最初の動的メモリブロックを指す第2のポインタを作成し、最初に設定 - 私はコードを理解コンパイルで苦労している:Cのポインタ
#include <stdio.h>
#include <stdlib.h>
int* numbers;
numbers = malloc (sizeof(int) * 10);
//create a second variable to always point at the
//beginning of numbers memory block
int* numbersStart;
numbersStart = numbers;
*numbers = 100;
numbers++;
*numbers = 200;
//use the 'numbersStart' variable to free the memory instead
free(numbersStart);
:それが提供する例は、このですブロックを100に、インクリメントして2番目のブロックを200に設定し、free()を使用してメモリを解放します。
しかし、コンパイルしようとすると、一連のエラーが発生します。コードはDynamic.cという名前のcクラスに、dynamicというフォルダに保存されます。ここ
は、端末で発生するものの印刷です:
gcc Dynamic.c -o Dynamic
Dynamic.c:13: warning: data definition has no type or storage class
Dynamic.c:13: error: conflicting types for ‘numbers’
Dynamic.c:12: error: previous declaration of ‘numbers’ was here
Dynamic.c:13: warning: initialization makes integer from pointer without a cast
Dynamic.c:13: error: initializer element is not constant
Dynamic.c:15: warning: data definition has no type or storage class
Dynamic.c:15: error: conflicting types for ‘numbersStart’
Dynamic.c:14: error: previous declaration of ‘numbersStart’ was here
Dynamic.c:15: error: initializer element is not constant
Dynamic.c:16: warning: data definition has no type or storage class
Dynamic.c:16: warning: initialization makes pointer from integer without a cast
Dynamic.c:17: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘++’ token
Dynamic.c:18: warning: data definition has no type or storage class
Dynamic.c:18: error: redefinition of ‘numbers’
Dynamic.c:16: error: previous definition of ‘numbers’ was here
Dynamic.c:18: warning: initialization makes pointer from integer without a cast
Dynamic.c:19: warning: data definition has no type or storage class
Dynamic.c:19: warning: parameter names (without types) in function declaration
Dynamic.c:19: error: conflicting types for ‘free’
/usr/include/stdlib.h:160: error: previous declaration of ‘free’ was here
これらのエラーは、私は非常に義務づけられる発生理由を誰かが説明できるならば、彼らはそのようの例であるべき理由を、私は見ていません本。
ありがとうございました。
私はあなたが 'メイン()'メソッドが欠落していると思います。 – Mysticial
あなたは言った_コードはcクラスに保存されました_。さて、cクラスは何ですか? Dynamic.c全体を表示してください – sidyll