2016-07-01 9 views
2

私が今質問しているのは、deletenewの演算子はCで何をしていますか?私はこの質問をしました.C++でメモリを割り当てる方法を考えただけで、newdeleteというキーワード(Cではmalloc()free())を使用したことを思い出しました。しかし、.cファイルのnewdeleteというキーワードを入力すると、それはキーワードとして現れた。キーワードはC(Not C++)で正確に使用されます。新しい演算子と削除演算子?

UsbDriver *ud = malloc(sizeof(UsbDriver)); 
free(ud); 
new // What is this keyword?(C) 
delete // What is this keyword?(C) 
+2

コンパイルしてみてください – James

答えて

6

おそらく、CおよびC++をサポートしているエディタを使用しています。新しいと削除はCの一部ではないので、

+0

ああ、その場合である必要があります – amanuel2

+0

@Dsafds皮肉なことに、SOにも同じ問題があります。あなたの質問のコードの書式を見てください。あなたはこのCのタグを付けましたが、SOはその2つをキーワードとしてフォーマットすることに決めました。 – Lundin

+0

そうです、@ランディンもそれに気付きました。 – amanuel2

7

Cにはnewdeleteキーワードはありません。あなたのエディタ間違ってをキーワードとして特定し、syntax highlightingを適用するだけです。

FWIWでは、言語(拡張子、おそらく)に基づいてエディタを編集する場合は、キーワードとして表示されていてもCに設定して、より良いエディタに切り替えます。

たとえば、このオンラインコンパイラとエディタを参照してください。

+0

私は新しいタイプと削除すると、彼らはすべて青です..そして、Visual Studioはここで間違っていないことを確かめてください。 – amanuel2

+1

@Dsafds: "Visual Studioはここで間違っていません" - ** Visual Studioは間違っています**;または間違って設定されている、または何か – pmg

+0

@DsafdsはここにすべてのCキーワードのリストを持っています、 'new'はそれらの間にありませんhttp://www.programiz.com/c-programming/list-all-keywords-c-language –