#include <stdio.h>
struct Analysis {
int lnlen;
int arr[2];
char* name;
};
int main()
{
struct Analysis ana_space[2];
char *ptr = (void*) &ana_space;
ana_space[0].lnlen = 0;
ana_space[0].arr[0] = 1;
ana_space[0].arr[1] = 2;
ana_space[0].name = "Peter";
printf("\n%d\n", *ptr); // print 0;
*ptr = 10; // how to use memcpy here;
printf("\n%d\n", *ptr); // print 10;
ptr = ptr + sizeof(int); // advance pointer by int;
printf("\n%d\n", *ptr); // print 1;
ptr = ptr + 2*sizeof(int); // advance pointer by 2 ints;
printf("\n%s\n", *ptr); // print "Peter"; --------------not work
//*ptr = "Jim"; // how to assign new name "Jim" into that memory;
return 0;
}
(空)
我想使用的char *作爲指針去通過存儲器地址獲取一些數據並將值存儲到m中埃默裏。
對於int和int數組,它工作正常,但不適用於字符串。
如何打印字符串並將新的字符串值存儲到內存中?
你爲什麼不使用。運算符將值存儲到成員中?你是否知道你在做什麼的問題? – 2501
你沒有考慮結構內的填充。 – Dmitri
第1步:打開編譯器警告以快速捕獲像'printf(「\ n%s \ n」,* ptr)等問題。 – chux