找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3461|回復(fù): 19
收起左側(cè)

C語言把一個數(shù)組里面的數(shù)據(jù),給另一個數(shù)組有哪些辦法?

  [復(fù)制鏈接]
ID:1043477 發(fā)表于 2022-10-24 14:58 | 顯示全部樓層 |閱讀模式
先定義數(shù)組A[100]={a,b,c...............},B[100],F(xiàn)在要把數(shù)組A里面的數(shù)據(jù)給數(shù)組B。
除了用
for(i=0;i<100;i++)
{
  B[ i]=A[ i];
}這種形式以為,有沒有其他速度更快的方式,庫函數(shù)的方式用不了,用的是51單片機 。,麻煩各位大佬支招。



回復(fù)

使用道具 舉報

ID:25310 發(fā)表于 2022-10-24 17:16 | 顯示全部樓層
void *memcpy(void *dst, void *src, size_t size);
這個函數(shù)的功能為將src上,大小為size字節(jié)的數(shù)據(jù)賦值到dst上。
調(diào)用該函數(shù)時需要引用頭文件cstring,即
#include <cstring>
賦值數(shù)組的代碼為
memcpy(b,a,sizeof(a));
回復(fù)

使用道具 舉報

ID:251368 發(fā)表于 2022-10-24 17:41 | 顯示全部樓層
int *aa,*bb;
int i = 100;
aa = A;
bb = B;
while(i--)
*bb++ = *aa ++;
指針訪問速度更快
回復(fù)

使用道具 舉報

ID:883242 發(fā)表于 2022-10-24 18:12 | 顯示全部樓層
不行,51單片機只有120 bytes內(nèi)存,你的操作最少需要200bytes,換一個稍微好一點的單片機,比如STM8才行。
回復(fù)

使用道具 舉報

ID:275826 發(fā)表于 2022-10-24 19:53 | 顯示全部樓層
union td
回復(fù)

使用道具 舉報

ID:275826 發(fā)表于 2022-10-24 19:54 | 顯示全部樓層
{char A[100];}
回復(fù)

使用道具 舉報

ID:275826 發(fā)表于 2022-10-24 19:55 | 顯示全部樓層
union td
{char A[100];
  char B[100];
} ss;
回復(fù)

使用道具 舉報

ID:401564 發(fā)表于 2022-10-24 20:04 | 顯示全部樓層
沙發(fā)的方法最簡單
我個人一般用結(jié)構(gòu)體,懶得打字,結(jié)構(gòu)體聲明好之后,就可以像賦值一樣的 A = B;了
回復(fù)

使用道具 舉報

ID:988199 發(fā)表于 2022-10-24 20:43 | 顯示全部樓層
可以使用指針創(chuàng)建兩個動態(tài)鏈表
回復(fù)

使用道具 舉報

ID:624769 發(fā)表于 2022-10-24 22:16 來自觸屏版 | 顯示全部樓層
一般用dma
回復(fù)

使用道具 舉報

ID:1034262 發(fā)表于 2022-10-25 11:40 | 顯示全部樓層
直接拷貝,或者DMA傳輸。
回復(fù)

使用道具 舉報

ID:123289 發(fā)表于 2022-10-26 10:53 | 顯示全部樓層
隨著你的功力加深,方法就多了。
最快的是DAM方式。
回復(fù)

使用道具 舉報

ID:195496 發(fā)表于 2022-10-27 13:05 | 顯示全部樓層
DMA快,51用指針也行
回復(fù)

使用道具 舉報

ID:514901 發(fā)表于 2022-10-27 14:29 | 顯示全部樓層
char *B;
回復(fù)

使用道具 舉報

ID:1047187 發(fā)表于 2022-10-27 17:24 | 顯示全部樓層
51好像有些沒有DMA 用指針吧
回復(fù)

使用道具 舉報

ID:401564 發(fā)表于 2022-10-27 19:08 | 顯示全部樓層
如果在冬夜 發(fā)表于 2022-10-27 17:24
51好像有些沒有DMA 用指針吧

STC8A8K最新出的有DMA了,但也沒認真看,更加沒有試過
回復(fù)

使用道具 舉報

ID:497656 發(fā)表于 2022-10-28 14:05 | 顯示全部樓層
定義一個指針,指向A,然后對指針操作。
回復(fù)

使用道具 舉報

ID:285686 發(fā)表于 2022-10-28 17:06 | 顯示全部樓層
int a[];//原來數(shù)組
int b[];//需要復(fù)制到b
b=a;//就行了。
回復(fù)

使用道具 舉報

ID:285686 發(fā)表于 2022-10-28 20:04 | 顯示全部樓層
tyrl800 發(fā)表于 2022-10-24 19:55
union td
{char A[100];
  char B[100];

好手動閥十分撒地方
回復(fù)

使用道具 舉報

ID:1050683 發(fā)表于 2022-11-7 21:49 | 顯示全部樓層

用指針吧,像這個層主這樣
int *aa,*bb;
int i = 100;
aa = A;
bb = B;
while(i--)
*bb++ = *aa ++;
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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