Devc++編程過程中的一些報錯總結

来源:https://www.cnblogs.com/dotime/archive/2019/04/16/10719618.html
-Advertisement-
Play Games

以下都是我在使用Devc++的過程中出現過的錯誤,通過查找資料解決問題,今天小小地記錄、整理一下。 1.[Error] invalid conversion from 'const char*' to 'char' [-fpermissive] 出現該錯誤的原因是:使用字元串操作函數 strcmp, ...


  以下都是我在使用Devc++的過程中出現過的錯誤,通過查找資料解決問題,今天小小地記錄、整理一下。

1.[Error] invalid conversion from 'const char*' to 'char' [-fpermissive]

  出現該錯誤的原因是:使用字元串操作函數 strcmp,strcpy時傳入的必須是指針

  例如  :strcmp(a[i],"f"),這是錯的,因為a[i]是值,不是指針,應該改為strcmp(&a[i],"f")

2.[Error] 'malloc' was not declared in this scope

  出現該錯誤的原因是:使用malloc()函數時需要添加頭文件#include<stdlib.h>,可能free()函數也是,因為也報了類似的錯誤

3.Program received signal SIGSEGV,Segmentation fault.報錯

  該錯誤出現在我調試的過程中,錯誤出現的原因指針未初始化或越界,訪問到未分配地址空間。

  不過,雖然知道了錯誤出現的原因,這個問題曾經還是困擾了我很久,下麵,我分享一下我與該錯誤的鬥爭經過,以下代碼是修改正確後的

 1 typedef struct             //數組存儲型順序棧,存儲數據int型 
 2 {
 3     int data[Maxsize];
 4     int top;
 5 }IntStack;

 6 void InitStack(IntStack **s)    //數據為int型的棧的初始化 
 7 {
 8     *s=(IntStack *)malloc(sizeof(IntStack));
 9     (*s)->top=-1;
10 }
  本來照著課本上使用c++的&引用符可以寫成void InitStack(IntStack *&s),然而,我保存文件時保存成.c文件了,於是c++的引用符就用不了了,一旦使用就會出現編譯錯誤。於是,第一次,我去掉了&符號,改成使用指針,改成了void InitStack(IntStack *s),發現編譯過了,但是運行起來是錯誤的,沒有結果輸出,返回值也是錯誤的(如果運行成功應該返回0,然而它卻返回一大串隨機數字)

  然後,我就開始調試,在進行到第六行時得到這個錯誤。下麵是我自己的理解:

  首先,我在main函數中定義了一個  IntStack *s=NULL  ,並將其初始化為NULL,如果我是用void InitStack(IntStack *s)函數,調用時就要寫InitStack(s),那麼實際上我是將s中的值傳到了函數中,而s中的值是NULL,將NULL傳入到函數中,這不是我想要的。

  實際上,InitStack函數的調用結果,我想要的是,申請一塊可以存儲IntStack型結構體的空間,並將這塊空間的地址保留到s中,以便通過s進行進一步的訪問,所以,malloc函數得到的地址其實應該作為s的值,賦給s,於是,我們需要傳入的就是s的地址,也就是二級指針,具體函數如上,調用時就寫成InitStack(&s),然後。。妥了,其實也確實是指針越界導致的錯誤啦,畢竟你啥也沒傳進去嘛,還想調用,想太多了。。。。

4.[Error]ld returned 1 exit status

  出現錯誤的原因可能有:

    1.是你的程式已經在運行,關閉原來的程式就可以正常了

    2.你機器上有殺毒(安全)軟體阻止了你程式的生成,退出殺毒(安全)軟體再試下。

    3、檢查聲明函數名與定義的是否一致,最好複製過來。

5.[Error]expected declaration or statement at end of input

  可能錯誤:

    1.某一個函數或者變數沒有在使用之前聲明。

    2.某個地方少了個括弧。即括弧不匹配。調試過程中不一定是游標提示處括弧不匹配,可能是附近模塊。

6.文件包含錯誤

  這個主要是理清文。件間的包含關係,避免重覆包含。我現在一般是用Devc++建工程,就三個文件,一個頭文件,三個.c文件,其中一個是main文件,兩個是放函數的文件,然後在.c文件中都包含.h文件就可以了。

7.bool類型在C語言中的使用

  如果想要在Devc++上寫C語言,又想用bool類型(C語言貌似是沒有bool類型的哦),那麼可以通過添加頭文件  #include<stdbool.h>  ,這樣就可以使用bool了。

                              初入道不久的小白,如有紕漏,望請指正。

 

 

   


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.數組的定義: 數組(Array)是相同數據類型的數據的有序集合。 2.數組的3個特點: 2.1數組長度是確定。數組一旦申請完空間,長度不能發生變化,用length屬性訪問。 2.2數組的元素都是同一數據類型。 2.3數組是有序的 。每個元素通過下標/索引標記,索引從0開始。 3.數組的3種聲明方 ...
  • 異常信息:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC dri ...
  • 類的生命周期 包括以下 7 個階段: 載入(Loading) 驗證(Verification) 準備(Preparation) 解析(Resolution) 初始化(Initialization) 使用(Using) 卸載(Unloading) 其中解析過程在某些情況下可以在初始化階段之後再開始,這 ...
  • 所屬網站分類: 資源下載 > python電子書 作者:熊貓燒香 鏈接:http://www.pythonheidong.com/blog/article/63/ 來源:python黑洞網,專註Python資源,Python教程,Python技術 這大概是入門Flask最最經典的教材了。可是我依然看 ...
  • Python3 基礎入門 編碼 在python3中,預設情況下以UTF 8編碼。所有字元串都是 unicode 字元串,當然也可以指定不同編碼。體驗過2.x版本的編碼問題,才知道什麼叫難受。 註釋 當行註釋: 被註釋內容 多行註釋:'''被註釋內容''',或者"""被註釋內容""" 行與縮進 縮進的 ...
  • TreeSet真的是使用TreeMap來存儲元素的嗎? TreeSet是有序的嗎? TreeSet和LinkedHashSet有何不同? ...
  • 今天老師講了多態的使用 多態是同一個行為具有多個不同表現形式或形態的能力。 多態的優點: 1. 消除類型之間的耦合關係 2. 可替換性 3. 可擴充性 4. 介面性 5. 靈活性 6. 簡化性 我個人認為 可替換性 可擴充性 靈活性 到是很充分的體現出來了。 現在就用問題來體現吧 !!! 1、創建一 ...
  • 根據老師的要求寫了一段然後在評講的時候在修該一些; 貓的: public class Cat extends Animal{ public void methodCat(){ System.out.println("貓會抓老鼠"); } } 蛇的: public class Snake extend ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...