首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

struct中有char *成员变量,无法赋值,求解解决思路

2014-01-17 
struct中有char *成员变量,无法赋值,求解struct name{char * p;char * w;}na;void main(){char *test;test

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

热点排行