找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 2008|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

C語(yǔ)言數(shù)組拷貝問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:510170 發(fā)表于 2021-4-17 11:10 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
最近在搞id卡門(mén)禁系統(tǒng)。想把讀取的卡號(hào)存到單片機(jī)內(nèi)存里面,遇到了一些問(wèn)題,第一個(gè)就是存儲(chǔ)超過(guò)256字節(jié)時(shí)會(huì)卡死,跳不出循環(huán),第二個(gè)就是串口輸出超過(guò)256是,屏幕無(wú)輸出,這個(gè)倒是不關(guān)鍵,改成128就沒(méi)有問(wèn)題了。因?yàn)槲掖谥皇怯脕?lái)監(jiān)控用的,并不需要一次發(fā)超過(guò)64個(gè)字節(jié)的數(shù)據(jù),關(guān)鍵就是數(shù)組copy的問(wèn)題,
        //這里需要將所有的新信息存至緩存中,然后發(fā)送至后臺(tái)軟件
                                                        sjbuf[0] = idbuf[1];
                                                        sjbuf[1] = idbuf[2];
                                                        sjbuf[2] = idbuf[3];
                                                        sjbuf[3] = idbuf[15];
                                                        
                                                        for(i=0; i<15; i++)        TX1_write2buff(idbuf[ i]);
                                                        
                                                        for(i=0; i<4; i++)        TX1_write2buff(sjbuf[ i]);

我將idbuf的內(nèi)容拷到sjbuf里面去,顯示的內(nèi)容全部為a5
03 06 00 00 02 0D 06 08 08 05 36 00 2D 68 85 //idbuf里面的內(nèi)容
A5 A5 A5 A5  //sjbuf里面的內(nèi)容。

我開(kāi)始以為是內(nèi)存大小的問(wèn)題,后來(lái)用串口輸出內(nèi)容后發(fā)現(xiàn),和內(nèi)存無(wú)關(guān),而是數(shù)組沒(méi)有拷貝過(guò)去。不清楚問(wèn)題出在哪里,程序沒(méi)有報(bào)錯(cuò),請(qǐng)大神們幫忙看看,謝謝了。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:451718 發(fā)表于 2021-4-17 15:54 | 只看該作者
#include <string.h>
memcpy(sjbuf,idbuf,sizeof(idbuf));
回復(fù)

使用道具 舉報(bào)

板凳
ID:57657 發(fā)表于 2021-4-17 17:43 | 只看該作者
數(shù)組越界,idbuf只有15字節(jié),因此 [] 里的值應(yīng)為 0~14
回復(fù)

使用道具 舉報(bào)

地板
ID:884843 發(fā)表于 2021-4-17 18:28 | 只看該作者
指針指向了未知內(nèi)存區(qū)域
回復(fù)

使用道具 舉報(bào)

5#
ID:907466 發(fā)表于 2021-4-17 19:09 | 只看該作者
數(shù)組容量的問(wèn)題
回復(fù)

使用道具 舉報(bào)

6#
ID:510170 發(fā)表于 2021-4-18 17:36 | 只看該作者
謝謝各位大神解答,問(wèn)題解決了。還是內(nèi)存的問(wèn)題。編譯的時(shí)候內(nèi)存模式選small就行了。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表