读书人

求大神:可不可以把char*指针强制转换

发布时间: 2012-04-06 12:22:24 作者: rapoo

求大神:可不可以把char*指针强制转换成一个指向结构体的指针
求大神解答:如题,如果可以,要怎么做?如果不可以,为什么?原理?谢谢大神啊!


[解决办法]
强制转换是可以,但是问题在于你为什么有这种需求
[解决办法]
指针都是一个存储地址的单元。肯定可以进行强制转换的。但是问题出在你转换后干什么??这样的代码安全么??
[解决办法]
指针都是一回事 指针的类型 只不过是告诉编译器取多大的内存 所以你想转是可以的
[解决办法]
楼主是不是有内容是以字符串传输的,现在想以结构体解析出来,这样是可以的。

(struct node *) str;
[解决办法]
指针其实就是一个地址, 指向一段内存, 至于怎么解释这段内存就得看这个指针是什么类型
[解决办法]
可以随便转,但有时会出错,都叫“强制”了,勉强的东西有时对有时就会错。
都代表地址
[解决办法]
可以,只要知道其内存布局,应该是木有什么问题的
[解决办法]
随便你怎么转 只要指向内存在指定大小内是可读的
[解决办法]
语法上没问题的,但struct 的内存布局要符合char* 指的东东,包括字节序问题也要考虑。要不然解释出来的东东就对不上了。
[解决办法]
都让楼上说完了。在唠叨几句吧。转换是木有问题的。不过楼主要记得struct结构的内存布局,如果是数据传输的话建议#pragma pack(push,1),定义结构体后在#pragma pack(pop)。稳妥一字节对齐撒。

读书人网 >C++

热点推荐