第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

問題0xC0000005: Access violation writing location?

問題0xC0000005: Access violation writing location?

MMMHUHU 2022-07-27 19:15:54
'字符指針作為函數(shù)參數(shù).exe': Loaded 'D:\用戶目錄\Documents\Visual Studio 2010\Projects\字符指針作為函數(shù)參數(shù)\Debug\字符指針作為函數(shù)參數(shù).exe', Symbols loaded.'字符指針作為函數(shù)參數(shù).exe': Loaded 'C:\Windows\System32\ntdll.dll', Symbols loaded (source information stripped).'字符指針作為函數(shù)參數(shù).exe': Loaded 'C:\Windows\System32\kernel32.dll', Symbols loaded (source information stripped).'字符指針作為函數(shù)參數(shù).exe': Loaded 'C:\Windows\System32\KernelBase.dll', Symbols loaded (source information stripped).'字符指針作為函數(shù)參數(shù).exe': Loaded 'C:\Windows\System32\msvcr100d.dll', Symbols loaded.First-chance exception at 0x013e14d5 in 字符指針作為函數(shù)參數(shù).exe: 0xC0000005: Access violation writing location 0x013e5741.Unhandled exception at 0x013e14d5 in 字符指針作為函數(shù)參數(shù).exe: 0xC0000005: Access violation writing location 0x013e5741.The program '[5032] 字符指針作為函數(shù)參數(shù).exe: Native' has exited with code -1073741819 (0xc0000005).下面是源碼經(jīng)過檢查問題出現(xiàn)在*dest1=*src1;但是自己不明白請(qǐng)大家看看 最好附加詳細(xì)說明 謝謝?。?!#include"stdio.h"#include"malloc.h"void catstr(char *dest,char *src);void main(){char *dest,*src="help you ???";if((dest=(char *)malloc(80))==NULL){printf("no memory \n");extern(1);}dest="Can I";catstr(dest,src);puts(dest);getchar();}void catstr(char *dest1,char *src1){while(*dest1){dest1++;}while(*src1){*dest1=*src1;src1++;dest1++;}}
查看完整描述

2 回答

?
呼如林

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊

這個(gè)問題有兩種方法解:
1.
對(duì)棧的定義不變

seqstack s1;//=NULL;
seqstack *s=&s1;

在主程序中
init(s);

2.修改初始化函數(shù)

void init(seqstack **s) /*初始化建立一個(gè)空棧*/
{

(*s)=(seqstack*)malloc(sizeof(seqstack));
(**s).top=-1;
printf("\n\nThere is a empty stack!\n");
}

在主程序中
static seqstack *s;

init(&s);

其原因(定義靜態(tài)變量會(huì)默認(rèn)初值0,這個(gè)你應(yīng)該知道的)是,
1.你沒給指針分配空間
2.的init(seqstack *s),按你原來的調(diào)用是值傳遞,如果你單步跟蹤后你會(huì)發(fā)現(xiàn) s還是0。

所以可以說你對(duì)指針的了解老指針指向常規(guī)變量的用法,當(dāng)若改變一個(gè)指針的值就應(yīng)該用
指向指針的指針**p.

另外成熟的算法對(duì)分配的內(nèi)存 結(jié)束時(shí)一定要釋放的,這是好的習(xí)慣,如果你做的項(xiàng)目一直跑個(gè)
一年半載不重啟,這樣內(nèi)存早晚會(huì)被程序吃光的。

查看完整回答
反對(duì) 回復(fù) 2022-08-01
?
墨色風(fēng)雨

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊

內(nèi)存訪問失敗,我覺得是 dest="Can I";這句導(dǎo)致了問題,字符串除了初始化時(shí)能這樣直接等于外,其他情況一般不可以直接等于xx的,這樣之后可能導(dǎo)致dest變?yōu)殪o態(tài)變量,所以下次你賦值到 *dest1=*src1;也就是到dest的末尾時(shí)出錯(cuò)了。修改為如下就行了。

#include"stdio.h"
#include"malloc.h"
#include "string.h"
void catstr(char *dest,char *src);
void main()
{
char *dest,*src="help you ???";
if((dest=(char *)malloc(80))==NULL)
{
printf("no memory \n");

}
strcpy(dest,"Can I");
catstr(dest,src);
puts(dest);
getchar();
}
void catstr(char *dest1,char *src1)
{
while(*dest1)
{
dest1++;
}

while(*src1)
{
*dest1=*src1;
src1++;
dest1++;
}
*dest1 = '\0';
}


查看完整回答
反對(duì) 回復(fù) 2022-08-01
  • 2 回答
  • 0 關(guān)注
  • 326 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)