1樓:匿名使用者
樓主 」type *data; 「 是一個結構體指標,你想把它當做結構體指標陣列來用。」 l.data[l.size]=item; 」
我根據你程式要實現的意思,提出幾種修改建議:
1、修改結構體成員type *data;為陣列 type data[maxsize];
原:typedef struct
seqlist;
修改為:
typedef struct
seqlist;
2、修改結構體物件
原:seqlist l;
修改為:
seqlist l[maxsize];
如果你還不明白,可以追問,我給你修改後的完整**。
2樓:匿名使用者
你的錯誤在於結構體中使用了string型別,結構體在你定義的時候大小就固定了(如果struct大小不固定,編譯器就不可能讓我們使用sizeof來計算大小),而string是不定長得,所以執行的時候程式試圖訪問越界記憶體時就會出現「某某某記憶體不能為read!」,你要麼使用定長字元陣列,要麼定義一個指標,先動態分配記憶體,再將指標指向該記憶體,當然,分配記憶體後記得釋放掉,你得程式就有這個問題,光知道使用malloc,不記得free。
另外,你的這種思路不是不行,但建立連結串列可能是更好得選擇。
你的程式還有一個問題:l.data[l.size]=item;結構體的內容拷貝可不能這麼幹,你必須將每一項拷貝進去。
以下是**和執行結果:
#include "iostream.h"
#include "string.h"
#include "stdlib.h"
#define maxsize 100
typedef struct
type;
typedef struct
seqlist;
int inilist(seqlist &l)
}for(i=0; idelram(l);
return 0;
}另外,作為程式設計師應該嚴謹一點,不要想當然,沒有除錯過的話建議不要亂給答案。
codeblocks在執行時已經沒有編譯錯誤,老是停止工作。
3樓:五個爪子抓媽拐
原始檔.c-->通過編譯器生成.o(目標檔案)-->+通過聯結器,呼叫庫函式**+刪註釋+外部函式價碼--->生成可執行檔案.exe;
從這個過程來講,compiler編譯器不知道,即缺失;手動新增就可以了。
如果編譯沒問題 但是一執行 就會自動彈出 .exe已經停止工作 也沒顯示**有錯誤之類 我是用codeblocks 執行的 執行結果如下:
compiling: f:\c++\1\1.cpp
linking console executable: f:\c++\1\1.exe
process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings
checking for existence: f:\c++\1\1.exe
executing: d:\program files\codeblocks/cb_console_runner.
exe "f:\c++\1\1.exe" (in f:
\c++\1)
process terminated with status -1073741819 (0 minutes, 4 seconds)
參考資料
csdn.csdn[引用時間2018-1-9]
為什麼在編譯c++程式的時候是沒有錯誤的,但是執行的時候就是出不來結果
4樓:吾守護奇蹟
編譯通過只是說明沒有語法錯誤,執行不出結果就是你**邏輯問題了貼**看看吧,自己打斷點除錯一下
while(r=!0)
寫反了吧, r != 0
否則就成死迴圈了。。。
5樓:夢中睡客
可能是你沒有輸出結果吧?
6樓:翼下之風
你可以跟蹤除錯一下就知道了
7樓:百科大全才
沒有編譯錯誤, 有邏輯錯誤;
你最好把**貼出來看看;
這個c程式編譯顯示沒有錯誤,為什麼不能執行?
8樓:育知同創教育
引數復必須制是指標(地址
bai)才可du以zhi。 scanf()函式要求參
數必須是指標類dao型,即將地址傳輸到其內,才可以讓a , b變數中獲取到資料。 如果你學過指標,你就會理解了。 c語言中函式的呼叫中,引數傳遞,只能傳遞數值。
如果只是將數值傳遞過去(接收者是形參),在子函式中變化,形參的變化,不會影響到實引數據的內容。 c中,每定義一個變數,系統都會在記憶體中給其分配一個空間用來儲存資料。而這個空間的編號就是這個變數的地址。
當我們將這個地址傳遞到子函式中,子函式在運算元據時,就會改變這個地址中的資料,這樣,實參的資料是會發生變化。 而你程式中,傳遞的是a b本身的值(可能是0,可能是1,可能是任意的數),scanf()將這兩個值當作地址去操作,因此會產生系統錯誤,導致程式執行停止。
為什麼c++程式編譯的時候沒有顯示錯誤,程式也可以執行,但是顯示不出結果?
9樓:匿名使用者
你確定這些資料都是int?比如增長率當你輸入0.1的時候讀進去的卻是0,會導致死迴圈。
按理說gnp,r,gnpn都應該是double吧。
C語言程式,沒有錯誤,但是執行不出來
stu n num malloc 10 sizeof char 錯誤,malloc返回void 型指標,必須在malloc前加強制轉換操作變為與stu n num相相容的型別。stu n nam malloc 5 sizeof char 錯誤,同上。scanf d t 是啥東西? 成員變數的指標使用...
c語言順序表執行錯誤
從你的螢幕輸出可以看出來。最後一次操作選擇了1.就是呼叫insert 是在insert的函式裡出錯的。你從螢幕輸入1 2 告訴函式要在第一個元素之前插入2這個值。看這裡 q l.elem i 1 q指向要插入的位置 for p l.elem l.length 1 p q p p指向最末一個元素,結束...
C 類的簡單程式執行有錯誤,求大神指點
百科大全才 include include using namespace std class cstudents cstudents cstudents cstudents cstudents char name,int age void cstudents initialize char nam...