C++链表,没有报错,但是不能运行,怎么解决? c++链表的使用编译成功但不能运行

C++\u5355\u94fe\u8868\u6c42\u5e73\u5747\u503c\u6ca1\u6709\u9519\u8bef\uff0c\u65e0\u6cd5\u8fd0\u884c\uff0c\u600e\u4e48\u89e3\u51b3\uff1f

int GetMeanValue(LinkList L){int i = 0, sum = 0, ave;LinkList p;p = L;while (p->next != NULL){p = p->next;++i;sum = sum + p->data;}ave = sum / i;return (ave);}while\u5faa\u73af\u7684\u6761\u4ef6\u5e94\u8be5\u662fp\u7684next\u4e0d\u4e3a\u7a7a\uff0c\u5426\u5219\u518d\u5faa\u73af\u4e2dp=p->next\u540e\u518d\u53d6data\u4f1a\u8d8a\u754c\u3002\u53e6\u5916\uff0c\u6c42\u5e73\u5747\u6570\u8fd4\u56de\u503c\u6700\u597d\u4e3a\u6d6e\u70b9\u6570\u3002\u671b\u91c7\u7eb3

#include
#include

void input(int ar[]);
void sort(int ar[]);
void find(int ar[]);
void output(int ar[]);

void output(int ar[])
{
int i;
printf("\n\u7ed3\u679c\u662f\uff1a\n");
for(i=0; i<10; i++)
printf("%d ", ar[i]);
printf("\n");
getch();
}

void find(int ar[])
{
int i, j;
printf("\u4e0b\u9762\u5b9e\u73b0\u67e5\u627e\u529f\u80fd:\n");
printf("\u8bf7\u8f93\u5165\u4e00\u4e2a\u6574\u6570:\n");
scanf("%d", &i);
for(j=0; j<10 && ar[j] != i; j++)
;
if(j>=10)
printf("\u5bf9\u4e0d\u8d77\uff0c\u60a8\u8f93\u5165\u7684\u6570\u627e\u4e0d\u5230!\n");
else
printf("The value is ar[%d]\n", j);
}

void sort(int ar[])
{
int i;
int j;
int k;
printf("\u4e0b\u9762\u5b9e\u73b0\u6392\u5e8f\u529f\u80fd:\n");

虽然我的电脑上没有安装 C++(C 语言也一样)集成编程及调试软件,我无法帮助你一步一步对源程序进行单步跟踪调试,但是我大致看了一下的 C++ 程序源代码,你在使用动态内存分配函数 malloc( ) 分配内存之后,并没有判断内存分配是否成功?即:

L = (node*)malloc(sizeof(node)); /* 分配数据类型大小为 sizeof(node) 的一个存储空间 */
if( L == NULL ) /* 如果内存分配失败,则退出应用程序 */
{
printf("Memory allocation failured !\n" ) ;

exit(1) ;

}

s = (node*)malloc(sizeof(node)); 也是同理。

由于 C++ 编译器(C 语言编译器也一样)只是对语法错误进行比较严格的检查,但是对其它的例如:数据类型越界等的检查(例如:数组越界、内存分配失败等)是非常宽松的,一般而言只是警告类型的错误,并不是致命错误。所以才会产生你编写的程序虽然没有报错、但是却无法正确运行的局面。
而且了,C++、C 语言中功能最强大的就是:指针!!再加上和计算机软件专业中的《数据结构》课程中的各种链表操作(插入一个元素、删除一个元素、查找一个元素等)混合编程,其调试难度更是难上加难。故在调试这类程序时没有别的任何办法,只有硬着头皮静下心来一点一点对程序进行设置断点、单步跟踪等手段进行调试。
故在这里我只能够根据我多年的编程经验给你提供一个参考思路。以上就是我多年的编程调试经验。希望能够对你有所帮助。祝你调试程序成功!

  • C璇█ 涓涓叧浜閾捐〃鐨勭畝鍗曠殑闂 鎴戠殑绋嬪簭娌℃湁閿欒,浣嗘槸涓嶈兘杩愯
    绛旓細鏀逛负while(p1->ID)鎴杦hile(p1->ID!=0)鍗冲彲銆
  • C璇█鐨閾捐〃鍒涘缓,绋嬪簭濡備笅,鏃閿欒,浣嗘棤娉鏄剧ず.
    绛旓細涔嬫墍浠娌℃湁鍙嶅簲锛屾槸鍥犱负initilist()鍑芥暟锛屽liu_zhongfeng鎵璇达紝鎮ㄤ紶閫掔殑鏄痩inklist l锛屽嚱鏁拌繑鍥炴椂鐢宠鐨勭┖闂村氨琚敹鍥炰簡锛岃繖涓猻wap(int a,int b)鏄竴鏍风殑閬撶悊銆傚啀鑰咃紝l鐞嗗簲鏉ヨ鏄釜閾捐〃鎸囬拡澶达紝鍥犱负涓嶇敤鏉ュ瓨鍌ㄦ暟鎹紝鎵浠ユ病鏈夊繀瑕佺敵璇风┖闂锛屼絾鏄鎮ㄤ护l涔熷仛涓轰竴涓疄闄呯殑閾捐〃琛ㄩ」锛屽敖绠″苟娌℃湁瀛樺偍鏁版嵁銆
  • C++閾捐〃,娌℃湁鎶ラ敊,浣嗘槸涓嶈兘杩愯,鎬庝箞瑙e喅?
    绛旓細鐢变簬 C++ 缂栬瘧鍣紙C 璇█缂栬瘧鍣ㄤ篃涓鏍凤級鍙槸瀵硅娉曢敊璇繘琛屾瘮杈冧弗鏍肩殑妫鏌锛屼絾鏄瀵瑰叾瀹冪殑渚嬪锛氭暟鎹被鍨嬭秺鐣岀瓑鐨勬鏌ワ紙渚嬪锛氭暟缁勮秺鐣屻佸唴瀛樺垎閰嶅け璐ョ瓑锛夋槸闈炲父瀹芥澗鐨勶紝涓鑸岃█鍙槸璀﹀憡绫诲瀷鐨閿欒锛骞朵笉鏄嚧鍛介敊璇傛墍浠ユ墠浼氫骇鐢熶綘缂栧啓鐨勭▼搴忚櫧鐒娌℃湁鎶ラ敊銆佷絾鏄鍗存棤娉姝g‘杩愯鐨勫眬闈傝屼笖浜嗭紝C++銆丆 璇█...
  • C++閾捐〃鍒犻櫎鑺傜偣,娌℃湁鎶ラ敊浣嗘槸鏃犳硶杩愯,鎬庝箞瑙e喅?
    绛旓細鐢变簬 C++ 缂栬瘧鍣紙C 璇█缂栬瘧鍣ㄤ篃涓鏍凤級鍙槸瀵硅娉曢敊璇繘琛屾瘮杈冧弗鏍肩殑妫鏌锛屼絾鏄瀵瑰叾瀹冪殑渚嬪锛氭暟鎹被鍨嬭秺鐣岀瓑鐨勬鏌ワ紙渚嬪锛氭暟缁勮秺鐣屻佸唴瀛樺垎閰嶅け璐ョ瓑锛夋槸闈炲父瀹芥澗鐨勶紝涓鑸岃█鍙槸璀﹀憡绫诲瀷鐨閿欒锛骞朵笉鏄嚧鍛介敊璇傛墍浠ユ墠浼氫骇鐢熶綘缂栧啓鐨勭▼搴忚櫧鐒娌℃湁鎶ラ敊銆佷絾鏄鍗存棤娉姝g‘杩愯鐨勫眬闈傝屼笖浜嗭紝C++銆丆 璇█...
  • 鍐欎簡涓涓C璇█绋嬪簭,鍗閾捐〃鐨勫垹闄,vc缂栬瘧娌¢敊璇,浣灏辨槸涓嶈兘杩愯缁撴灉?
    绛旓細1銆佸苟涓嶆槸璇村懡浠ゆ彁绀虹鍏抽棴锛屽疄闄呬笂鏄帶鍒跺彴绋嬪簭鍦ㄦ帶鍒跺彴瀛愮郴缁熶腑杩愯缁撴潫鍟︼紝Windows鏈変袱涓熀鏈殑瀛愮郴缁燂紝鍒嗗埆鏄帶鍒跺彴鍜屽浘褰㈢晫闈紝褰撶敤vc/vs缂栧啓鐢熸垚涓涓彲鎵ц鏂囦欢鏃讹紝閾炬帴鍣ㄤ細閫氳繃/subsystem鍙傛暟鏉ユ寚鏄庣▼搴忕殑杩愯瀛愮郴缁熴2銆佸鏋滆鐪嬪埌闂
  • C璇█鍐欑殑閾捐〃銆傛槑鏄娌℃湁閿欒,涓轰粈涔堢紪璇戝櫒杩樹細鎶ラ敊,?鑰屼笖杩樼垎鍑100+鐨...
    绛旓細灏辨槸鍓嶉潰鍜屽悗闈㈡湁鐐归棶棰橈紝鐩存帴鐢ㄤ笅闈㈢殑鏇挎崲鎺夊搴旂殑閮ㄥ垎灏辫浜嗐備綘鍘荤淇¢噷澶嶅埗浠g爜鍚э紝绉佷俊閲屽鍒剁矘璐村悗涓嶆槸涓鏁磋銆俰nclude<malloc.h> include<stdio.h> include<stdlib.h> /*---鏁版嵁绫诲瀷瀹氫箟---*/ typedef struct node { int data; //閾捐〃缁撴瀯锛岄摼琛鐨勬暟鎹煙 struct node *next; //閾捐〃鐨...
  • ...杩愯鏃娌℃湁閿欒,鍙槸涓嶈兘鍑虹幇鎯宠鐨勭粨鏋,姹傞珮鎵嬩慨鏀!!!
    绛旓細浣犳渶濂芥妸浣犺緭鍏ヤ簡浠涔堬紝涓轰粈涔堝垽鏂▼搴忓嚭閿欑粰鍑烘潵銆傝繖鏍峰埆浜哄ソ閲嶇幇浣犵殑鏁呴殰浠ヤ究璋冭瘯銆傚暐閮戒笉璇达紝灏辨憜涓唬鐮佸嚭鏉ワ紝鏈変粈涔堢敤鍛锛
  • c璇█ 鍦ㄥ崟閾捐〃涓彃鍏ヤ竴涓暟銆備负浠涔堣繖鏍风紪璇娌℃湁闂浣嗘槸杩愯涓嶄簡
    绛旓細涓ゅ閿欒銆 浣犵湅涓嬫敞閲娿傚彟澶栵紝寤鸿鍔犱竴涓攢姣閾捐〃閲婃斁鍐呭瓨鐨勫嚱鏁般俰nclude<stdio.h>#include<stdlib.h>#include<string.h>#define L sizeof(struct status)typedef struct status{int data;struct status *next;}status;int n;status *creat(status *h){struct status *p1,*p2;p1=p2=(struct ...
  • 鎴戝湪缂栦竴涓崟閾捐〃鏃跺嚭浜嗛棶棰 浣嗘槸鎴戞劅瑙娌℃湁閿 绋嬪簭濡備笅
    绛旓細浣犵殑浠g爜濡傛灉鏄湪C++缂栬瘧鍣ㄤ腑搴旇鏄纭殑锛屾墍浠ユ垜浼拌浣犵敤鐨勬槸C鐨勭紪璇戝櫒锛屽洜涓虹湅浣犵殑鏂囦欢鍚嶆槸main.c銆傚洜涓篊鍜孋++瀵箂truct鐨勫鐞嗘槸涓嶄竴鏍风殑锛屾墍浠ラ犳垚杩欎釜闂銆傛湁涓や釜鍔炴硶銆1銆佺敤C++锛屾妸main.c鏀规垚main.cpp銆2銆佸鏋滀竴瀹氳鐢–鐨勮瘽锛岃鎶奡tudent* print;鏀规垚struct Student* print;
  • c缂栫▼闂,浠g爜濡備笅,閾捐〃鍙互鍒涘缓,浣嗘槸涓嶈兘杈撳嚭
    绛旓細struct date_type { unsigned short year; unsigned short month; unsigned short day; }; struct student_type { int num; char name[20];//瀛楃涓插畾涔閿欒 char address[20];//瀛楃涓插畾涔夐敊璇 long number; struct date_type birthday; struct student_type ...
  • 扩展阅读:c++和python先学哪个 ... c#开发实战 ... 学c#有前途吗 ... c++简单程序实例 ... c++中<< ... c++链表教程 ... c语言和c++差别大吗 ... 链表反转 c++ ... c#如何解除套接字占用 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网