1. 程式人生 > >glGenVertexArrays:0x00000000處未處理的異常 0xC0000005:Access Violation.記憶體錯誤

glGenVertexArrays:0x00000000處未處理的異常 0xC0000005:Access Violation.記憶體錯誤

1.確認呼叫的變數已初始化:

如:glGenVertexArrays(nums,VAO),其中VAO必須進行初始化。

2.確認是在非遠端桌面連線狀態下進行的除錯。

如:我用mstsc操作遠端電腦,進行程式除錯,一直報記憶體錯誤。我悲催的找了2天一直沒有解決,後來,本地除錯...通過!!!

3.GLEW is not correctly initialized and therefore glGenBuffers is not a valid function pointer

其他:記憶體錯誤 未處理的異常: 0xC0000005: 讀取位置 0x00000000 時發生訪問衝突

關於0xC0000005問題:

0xC0000005: Access Violation錯誤除錯- -

1》資料越界或是定義的指標未釋放.

2》空的指標的可能性最大。使用指標前最好能顯式的賦值! 
應該是指標的問題

3》記憶體訪問錯誤,檢查指標,是否為空,是否越界等

可能性 3 種 
1: 
char *p; 
p = new char[number]; 
delete [] p; 
.... 
// always using p.... 
p = xxx; // access violation 

2: 
char *p; 
memcpy(p, xxx, number); // access violation 

3: 
char *p; 
p = new char[number]; 
delete [] p; 
......... 
delete [] p; // access violation

空指標。。

另外,出現堆被損壞的錯誤,是new太多了,又沒delete,這時需要改用GlobalAlloc來分配記憶體了。