为什么你需要取消引用字符指针?

问题描述:

我不明白为什么指针必须在这里取消引用。 char *toParseStr = (char*)malloc(10);任何人有任何想法?为什么你需要取消引用字符指针?

char *toParseStr = (char*)malloc(10);

这里没有提领,但malloc返回值强制转换为char *。演员不是必需的,甚至应该避免。

知道为什么应避免投:

http://c-faq.com/malloc/mallocnocast.html

+0

是否有铸造它有什么好处?在什么情况下它会有用? – AkshaiShah

+0

@AkshaiShah这是一个风格问题,一些编程者更喜欢在他们的演员中明确表达。另外,如果你想让它在C++中工作,它也需要强制转换。 – peacemaker

+2

@AkshaiShah在C++中,演员是必需的,我看到人们习惯于在那里做习惯;但随后在C++中使用'malloc'应该是一件罕见的事情。 – dmckee

的malloc返回一个void *,所以剧组有必要在某些情况下,防止编译错误

+0

不,演员是没有必要的,甚至是有害的。如果它是C++,那将是必需的。 – 2012-11-19 22:02:15

+0

ouah刚刚发布的链接解释了这一点。 – Slicedpan