找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關(guān)于C語言數(shù)組拷貝

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:734017 發(fā)表于 2024-6-6 19:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
函數(shù)1    temp arr[20]={};
函數(shù)2長度不固定,最大20個元素,以0x33結(jié)尾    arr[]={};

把函數(shù)2拷貝到函數(shù)1去,單片機可以用sizeof函數(shù)配合memcpy函數(shù)嗎。
memcpy是內(nèi)存復(fù)制函數(shù)未嘗試過在單片機使用。

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

使用道具 舉報

沙發(fā)
ID:401564 發(fā)表于 2024-6-7 01:06 | 只看該作者
聲明兩個結(jié)構(gòu)體,在結(jié)構(gòu)體中聲明數(shù)組,然后就可以直接用
結(jié)構(gòu)體1 = 結(jié)構(gòu)體2
回復(fù)

使用道具 舉報

板凳
ID:879809 發(fā)表于 2024-6-7 06:49 | 只看該作者
sizeof只能判斷正常的0x0結(jié)束符,無法判斷樓主自定義的0x33結(jié)束符,所以完全不可能。
回復(fù)

使用道具 舉報

地板
ID:458247 發(fā)表于 2024-6-7 08:56 | 只看該作者
可以用,但是你要保證數(shù)組1的長度≥數(shù)組2;然后你是要拷貝到0x33那個字節(jié),后面都不拷貝?那這樣的話就不能用這個方法了。另外以0x33做結(jié)尾是否有點草率,萬一你前面的數(shù)據(jù)中包含了0x33這個字符呢
回復(fù)

使用道具 舉報

5#
ID:161164 發(fā)表于 2024-6-7 10:01 | 只看該作者
memcpy(temp_arr,arr,sizeof(arr) / sizeof(arr[0]));
回復(fù)

使用道具 舉報

6#
ID:458247 發(fā)表于 2024-6-7 13:28 | 只看該作者
lkc8210 發(fā)表于 2024-6-7 10:01
memcpy(temp_arr,arr,sizeof(arr) / sizeof(arr[0]));

你這個寫法不對,memcpy是按字節(jié)拷貝的,不需要/sizeof(arr[0])
回復(fù)

使用道具 舉報

7#
ID:1124222 發(fā)表于 2024-6-7 16:48 | 只看該作者
可以沒有任何問題
回復(fù)

使用道具 舉報

8#
ID:1124236 發(fā)表于 2024-6-7 17:07 | 只看該作者
為方便說明,定義兩個整型數(shù)組a,b,并實現(xiàn)將a中的值賦值到b中。 int a[4] = {1,2,3,4}, b[4];  1、 通過數(shù)組遍歷,逐個賦值。 定義循環(huán)變量int i; for(i = 0; i < 4; i ++) b[i] = a[i]; 該程序功能為遍歷數(shù)組a,逐個賦值到數(shù)組b對應(yīng)元素中。  2、 借助內(nèi)存復(fù)制函數(shù)memcpy,整體賦值。 void *memcpy(void *dst, void *src, size_t size); 這個函數(shù)的功能為將src上,大小為size字節(jié)的數(shù)據(jù)賦值到dst上。 調(diào)用該函數(shù)時需要引用頭文件cstring,即 #include 賦值數(shù)組的代碼為 memcpy(b,a,sizeof(a));
回復(fù)

使用道具 舉報

9#
ID:879348 發(fā)表于 2024-6-7 17:18 | 只看該作者
自己封裝一個就行了,為什么非得用標準的函數(shù)處理非標準的問題
回復(fù)

使用道具 舉報

10#
ID:161164 發(fā)表于 2024-6-7 17:43 | 只看該作者
yzw846562238 發(fā)表于 2024-6-7 13:28
你這個寫法不對,memcpy是按字節(jié)拷貝的,不需要/sizeof(arr[0])

受教了
回復(fù)

使用道具 舉報

11#
ID:734017 發(fā)表于 2024-6-7 22:08 | 只看該作者
3212432202 發(fā)表于 2024-6-7 17:07
為方便說明,定義兩個整型數(shù)組a,b,并實現(xiàn)將a中的值賦值到b中。 int a[4] = {1,2,3,4}, b[4];  1、 通過數(shù) ...

sizeof(a)是所有節(jié)字數(shù),memcpy(b,a,sizeof(a));可以適用int 和char 是吧,謝謝
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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