[问题] 请问如何print此阵列

楼主: AppleGod (..)   2014-04-18 06:07:09
想请问的完整程式码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ARRAYSIZE 10
int main()
{
int i;
unsigned long buff;
unsigned char *ReadBuf = NULL;
ReadBuf = (unsigned char *)malloc(sizeof(unsigned char)*ARRAYSIZE);
memset(ReadBuf, '1', ARRAYSIZE);
for(i=0; i<ARRAYSIZE; i++)
{
printf("%c ", ReadBuf[i]);
}
printf("\n");
unsigned char *temp=
(unsigned char *)malloc(sizeof(unsigned char)*ARRAYSIZE);
memcpy((void *)temp, (void *)buff, ARRAYSIZE);
buff = (unsigned long)temp;
memcpy((void *)buff, (void *)ReadBuf, ARRAYSIZE);
//how to print the buff??
for(i=0; i<ARRAYSIZE; i++)
{
printf("%lu ", *(&buff+i));
}
printf("\n");
return 0;
}
问题:
因为buff是unsigned long,所以我用%lu去印,
但因出的都不是正确的内容:
1 1 1 1 1 1 1 1 1 1
想请问哪里有问题,谢谢!
作者: LPH66 (-6.2598534e+18f)   2014-04-18 08:25:00
呃, buff 根本就不是阵列啊...还有你中间的 temp 是来做什么的 @@或者该问你你真的知道你在写些什么吗?
作者: donkeychen (Bad_To_The_Bone)   2014-04-18 13:59:00
请问是要做动态阵列吗这边好像说pointer的大小不一样 http://goo.gl/wC4V8i把temp 存到buff有点怪对不起我推文推得好乱@@;; SORRY
楼主: AppleGod (..)   2014-04-19 07:34:00
buff不是阵列 可是为何可以用memcpy 复制到temp?还有 这不是我的 code 我也是看不懂才想问一下 @@
作者: donkeychen (Bad_To_The_Bone)   2014-04-21 11:33:00
都用(void *)转型 code已经只认两个位址 跟大小

Links booklink

Contact Us: admin [ a t ] ucptt.com