VS報錯C6011的問題:取消對NULL指針的引用(解決方法)
VS報錯C6011:取消對NULL指針的引用 解決方法
寫了這樣一段代碼,第4、5行報錯:
C6011:取消對NULL指針的引用
void EnQueue(LinkQueue& Q, ElemType x) { LinkNode* s = (LinkNode*)malloc(sizeof(LinkNode)); s->data = x; s->next = NULL; Q.rear->next = s; Q.rear = s; }
發(fā)現(xiàn)是沒有進行空指針的判斷。
于是改為如下代碼,報錯消失:
void EnQueue(LinkQueue& Q, ElemType x) { LinkNode* s = (LinkNode*)malloc(sizeof(LinkNode)); if (!s)cout << "Invalid value!" << endl; // 判斷空指針 else s->data = x; Q.rear->next = s; Q.rear = s; }
擴展:
C6011:取消對NULL指針“_____“的引用解決辦法
malloc之后沒有檢查是不是空間不夠返回了空指針NULL
//向內存申請10個整形的空間 //p中存放開辟空間的地址 int* p=(int*)malloc(10*sizeof(int)); //開辟失敗,內存不夠,返回空指針NULL if(p==NULL) { //打印錯誤原因的一個方式 printf("%s\n",strerror(errno)); //Not enough space }
malloc
動態(tài)內存開辟函數(shù)
庫函數(shù)聲明
void* malloc (size_t size);
簡單例子
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<errno.h> int main() { //向內存申請10個整形的空間 //p中存放開辟空間的地址 int* p=(int*)malloc(10*sizeof(int)); //開辟失敗,內存不夠,返回空指針NULL if(p==NULL) { //打印錯誤原因的一個方式 printf("%s\n",strerror(errno)); //Not enough space } else { //正常使用空間 int i=0; for(i=0;i<10;i++) { *(p+i)=i; } for(i=0;i<10;i++) { printf("%d ",*(p+i)); } } //當動態(tài)申請的空間不再使用的時候 //就應該還給操作系統(tǒng) free(p);//主動歸還空間,但p還是可以找到這塊空間,危險 p = NULL; return 0;//程序結束,被動歸還空間 }
相關說明:
這個函數(shù)向內存申請一塊 連續(xù)可用 的空間,并返回指向這塊空間的指針。
如果開辟成功,則返回一個指向開辟好空間的指針。
如果開辟失敗,則返回一個NULL指針,因此malloc的返回值一定要做檢查。
返回值的類型是 void* ,所以malloc函數(shù)并不知道開辟空間的類型,具體在使用的時候使用者自己來決定
如果參數(shù) size 為0,malloc的行為是標準是未定義的,取決于編譯器。
malloc和free都聲明在 stdlib.h 頭文件中
到此這篇關于VS報錯C6011:取消對NULL指針的引用 解決方法的文章就介紹到這了,更多相關VS報錯C6011內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- VSCode遠程連接服務器報錯:Could not establish connection to
- vscode編譯運行c語言報錯亂碼的解決
- vscode中的vue項目報錯Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
- 快速解決VS Code報錯:Java 11 or more recent is required to run. Please download and install a recent JDK
- 解決安裝vs2019后原vs2017項目無法編譯各種報錯的問題
- VS2017添加EF的MVC控制器報錯的解決方法
- VS2015使用scanf報錯的解決方法
相關文章
C++?AVL樹插入新節(jié)點后的四種調整情況梳理介紹
AVL樹是高度平衡的而二叉樹,它的特點是AVL樹中任何節(jié)點的兩個子樹的高度最大差別為1,本文主要給大家介紹了C++如何實現(xiàn)AVL樹,需要的朋友可以參考下2022-08-08C++使用JsonCpp庫操作json格式數(shù)據(jù)示例
這篇文章主要介紹了C++使用JsonCpp庫操作json格式數(shù)據(jù),結合實例形式詳細分析了JsonCpp庫的下載及C++使用JsonCpp庫對json格式數(shù)據(jù)序列化相關操作技巧,需要的朋友可以參考下2017-06-06