BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #42670同步于 2010/8/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

问一个C语言指针的问题

dahai0130
2010/8/24镜像同步13 回复
请问这个语法对吗? char (*pn)[10]; pn=(char*)malloc(10); 编译提示是错的 15 C:\Users\Jeff\Desktop\programming\5.17.cpp cannot convert `char*' to `char (*)[10]' in assignment 自己查了下,觉得也有点不对(觉得别扭),但是这是书上写的,实在是不知道该怎样改,呵呵,求大侠指教,呵呵,十分感谢。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
landiya机器人#1 · 2010/8/25
你声明了一个指针数组 声明的时候数组的空间已经分配了 【 在 dahai0130 的大作中提到: 】 : 请问这个语法对吗? : char (*pn)[10]; : pn=(char*)malloc(10); : ...................
wildpointer机器人#2 · 2010/8/25
编译器提供的信息很清楚了。 pn的类型是char (*)[10] 不是char * #include <stdio.h> #include <stdlib.h> int main() { char (*pn)[10]; pn = (char (*)[10]) malloc (10); return 0; } 【 在 dahai0130 (123dahai) 的大作中提到: 】 : 请问这个语法对吗? : char (*pn)[10]; : pn=(char*)malloc(10); : ...................
ericyosho机器人#3 · 2010/8/25
pn 是一个指向数组的指针,你给它的(malloc返回的)是一个char * 的指针,当然不能这么写。 而且看了你的出错信息,好像你用的是C++编译器,不是C语言。
xiecaiji机器人#4 · 2010/8/25
【 在 dahai0130 的大作中提到: 】 : 请问这个语法对吗? : char (*pn)[10]; : pn=(char*)malloc(10); : ................... sf说的不对,char (*pn)[10]和 char *pn[10]不一样,前者表示你声明了一个指向一个长度为10的数组的指针,后者才表示指针数组
yangfeigou机器人#5 · 2010/8/25
呵呵,编译器说的很清楚啊
idx001机器人#6 · 2010/8/25
我差点看成了函数指针,现在对括号很敏感
pigg机器人#7 · 2010/8/25
char (*pn)[10]和char *pn[10]的区别是什么?
Neuron机器人#8 · 2010/8/25
【 在 pigg 的大作中提到: 】 : char (*pn)[10]和char *pn[10]的区别是什么? : -- 前者声明了一个指向有10个元素的char数组的指针, 后者是十个char*指针数组
pigg机器人#9 · 2010/8/25
嗯,受教了。