[問題] 請問如何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