读书人

struct中有char *成员变量无法赋值

发布时间: 2014-01-17 00:06:00 作者: rapoo

struct中有char *成员变量,无法赋值,求解
struct name
{
char * p;
char * w;
}na;

void main()
{
char *test;
test = (char *)malloc(sizeof(test));
*test = ’a‘;//可以赋值.
na.p = (char *)malloc(sizeof(test));
na.p[0] = 'A';//不可以赋值提示错误 cannot convert from 'const char' to 'char *

}

我用的是visual c++ 6.0编译器.
不明白是为什么了,请解答
[解决办法]
LZ你个疯子,所有标点符号都是中文的,能编译过才怪,除了这个,程序语法没有任何问题。(malloc了却不free造成内存泄漏是另一回事)如果还不行,换个编译器,vc6.0已经老掉牙了
[解决办法]
很老的编译器了,不要纠结这种问题了楼主
[解决办法]
对C而言,你粘贴的代码用了很多中文的括号和分号,把这些符号改过来后,用vs2012试了,没你说的问题,另外,na.p[0]建议加括号写成(na.p)[0],最后一定要free掉。
[解决办法]


#include <stdlib.h>
#include <stdio.h>

struct name
{
char *p;
char *w;
}na;

int main(int argc, char **argv)
{
char *test;
test = (char*)malloc(sizeof(test));

*test = 'a';

na.p = (char*)malloc(sizeof(test));
na.p[0] = 'A';

printf ("%c\n", na.p[0]);
return 0;
}

代码没问题,注意释放自己分配的内存

引用:
很老的编译器了,不要纠结这种问题了楼主


[解决办法]
引用:
Quote: 引用:


#include <stdlib.h>
#include <stdio.h>

struct name
{
char *p;
char *w;
}na;

int main(int argc, char **argv)
{
char *test;
test = (char*)malloc(sizeof(test));

*test = 'a';

na.p = (char*)malloc(sizeof(test));
na.p[0] = 'A';

printf ("%c\n", na.p[0]);
return 0;
}

代码没问题,注意释放自己分配的内存

Quote: 引用:

很老的编译器了,不要纠结这种问题了楼主



用什么编译器啊,

Liunx下:gcc/g++ windows下,用visual studio 2005/8/10 最好下一个最新的破解版本,支持c++11

读书人网 >C语言

热点推荐