返回信息流请问这个语法对吗?
char (*pn)[10];
pn=(char*)malloc(10);
编译提示是错的
15 C:\Users\Jeff\Desktop\programming\5.17.cpp cannot convert `char*' to `char (*)[10]' in assignment
自己查了下,觉得也有点不对(觉得别扭),但是这是书上写的,实在是不知道该怎样改,呵呵,求大侠指教,呵呵,十分感谢。
这是一条镜像帖。来源:北邮人论坛 / cpp / #42670同步于 2010/8/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
问一个C语言指针的问题
dahai0130
2010/8/24镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
你声明了一个指针数组
声明的时候数组的空间已经分配了
【 在 dahai0130 的大作中提到: 】
: 请问这个语法对吗?
: char (*pn)[10];
: pn=(char*)malloc(10);
: ...................
编译器提供的信息很清楚了。
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);
: ...................
pn 是一个指向数组的指针,你给它的(malloc返回的)是一个char * 的指针,当然不能这么写。
而且看了你的出错信息,好像你用的是C++编译器,不是C语言。
【 在 dahai0130 的大作中提到: 】
: 请问这个语法对吗?
: char (*pn)[10];
: pn=(char*)malloc(10);
: ...................
sf说的不对,char (*pn)[10]和 char *pn[10]不一样,前者表示你声明了一个指向一个长度为10的数组的指针,后者才表示指针数组
【 在 pigg 的大作中提到: 】
: char (*pn)[10]和char *pn[10]的区别是什么?
: --
前者声明了一个指向有10个元素的char数组的指针, 后者是十个char*指针数组