读书人

c/c++有关问题

发布时间: 2012-03-09 21:42:55 作者: rapoo

c/c++问题
char ch[] ="123456";
char* c;
memcpy(c,ch,sizeof(int)); //这种c中的值为1234
int* p;
memcpy(p,ch,sizeof(int)); //编译也是成功的,p与ch的类型不一样也可以,为什么呢? 这种写法的代表什么意思啊?

[解决办法]
内存拷贝
只是内存结构的拷贝
[解决办法]
在内存中存放的都是二进制码
拷贝的只是相应的二进制码
[解决办法]
1、memcpy(void *dst, void*src, size_t size)不关心你传入的指针类型、只关心内存地址以及拷贝多少
2、编译是能通过、但运行会崩溃 char *c int *p 都没有分配内存空间
char *c = (char*)malloc(16);
int *p = (int *)malloc(sizeof(int))
[解决办法]
十十

探讨

1、memcpy(void *dst, void*src, size_t size)不关心你传入的指针类型、只关心内存地址以及拷贝多少
2、编译是能通过、但运行会崩溃 char *c int *p 都没有分配内存空间
char *c = (char*)malloc(16);
int *p = (int *)malloc(sizeof(int))

读书人网 >C语言

热点推荐