意外*,意外(
回答
如果要在C
中模擬new
的功能,因爲它在C++
中,那麼實際上會給出錯誤的參數new
。 它應該是const unsigned int
或const size_t
因爲新在C++作爲
int *p;
p=new (sizeof(int));
但在這裏它的類型不匹配無法轉換int
到const void *
對於delete
這很好,因爲delete
需要pointer
作爲參數
那麼你正在編譯爲C,但new
和delete
運營商只支持在C++中。
而且,new
和delete
簽名是:
void* operator new(size_t n);
void operator delete(void* p);
您也可以重載這些運營商的特定類(由宣稱他們在類中)。
新增和刪除是C++中的關鍵字,而不是合法的函數名稱。
即使你認爲你正在編譯C,測試它是否修復它。如果沒有,那麼它可能是經典的C/C++神祕的錯誤:問題是在之前的包括,它可能缺少分號或者其他東西。
這是一個不是C++程序的c程序 –
是您的文件擴展名.c?你是用c編譯器還是C++編譯器編譯的? – fayyazkl
@fayyazkl是的,它是一個.c文件。我使用gcc來嘗試編譯它。 –
這似乎是在C++下無效的幾個C程序之一:標識符new
和delete
在C下是完全有效的,但在C++中保留。
- 1. 意外的「意外」}「」
- 2. 意外「:」和意外「)」錯誤
- 3. 「意外 '='」
- 4. 意外的例外
- 5. 意外T_VARIABLE,但它不是意外
- 6. 的Javascript意外意外標識符
- 7. ReactJS - 意外 「`」
- 8. 意外T_STRING
- 9. 意外的T_FOREACH
- 10. 意外t_catch
- 11. 在意外
- 12. 意外結束
- 13. 意外序列
- 14. 意外令牌「+」
- 15. SecurityManager意外
- 16. 意外狀況
- 17. 意外EOF
- 18. 執行意外
- 19. 文件意外$
- 20. 意外T_CONCAT_EQUAL
- 21. 蟒意外空()
- 22. 意外錯誤
- 23. 驗證意外{
- 24. 意外結果
- 25. 意外重寫
- 26. 意外行爲
- 27. 意外performace.navigation.type onbeforeunload
- 28. 意外retainCount
- 29. 意外T_CONSTANT_ENCAPSED_STRING
- 30. spl_autoload_register意外T_FUNCTION
你確定你在編譯C嗎? 'new'和'delete'是C++關鍵字,它看起來就是這樣的。 – Mysticial
你想實現'new'和'delete'運算符嗎?如果是這樣,你應該添加'運營商'關鍵字。 – 2012-10-25 05:13:17
OOP C究竟是什麼? C不是面向對象的。 – fayyazkl