无法从“const char [7]”转换为“char”

geyongqi 2009-08-14 06:03:30
#include "stdafx.h"
void xx(qq *bw);
typedef struct qq {
char a[1][1];
}qq;

int _tmain(int argc, _TCHAR* argv[])
{
struct qq bb;
xx(&bb);
return 0;
}

void xx(qq *bw)
{
bw->a[1][1] ="123456"; //这出错
printf("%s",bw->a[1][1]);
}

报错:无法从“const char [7]”转换为“char”
环境:Visual Studio 2008

请帮忙。。。
...全文
740 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
askquestion1 2009-08-15
  • 打赏
  • 举报
回复
hh,这种问题最无聊了~~~
paolochristian 2009-08-15
  • 打赏
  • 举报
回复
学习!
gelu1040 2009-08-15
  • 打赏
  • 举报
回复
a[1][1] 是char 型变量, “123456”是char * 型变量
zzandyc 2009-08-14
  • 打赏
  • 举报
回复
typedef struct qq {
char * a;
}qq;
void xx(qq *bw);

int main()
{
struct qq bb;
xx(&bb);
return 0;
}

void xx(qq *bw)
{
bw->a ="123456";
printf("%s",bw->a);
}
mstlq 2009-08-14
  • 打赏
  • 举报
回复
typedef struct qq {
char a[50];
}qq;
void xx(qq *bw);
int _tmain(int argc, _TCHAR* argv[])
{
struct qq bb;
xx(&bb);
return 0;
}

void xx(qq *bw)
{
strcpy(bw->a,"123456");
printf("%s",bw->a);
}
mstlq 2009-08-14
  • 打赏
  • 举报
回复
typedef struct qq {
char *a;
}qq;
void xx(qq *bw);
int _tmain(int argc, _TCHAR* argv[])
{
struct qq bb;
xx(&bb);
return 0;
}

void xx(qq *bw)
{
bw->a ="123456";
printf("%s",bw->a);
}
forwrj 2009-08-14
  • 打赏
  • 举报
回复
bw->a[1][1] ="123456"; //这出错
这明显有问题
typedef struct qq {
char *a[1];
}qq;


typedef struct qq {
char *a[1][1];
}qq;
都可以
amossavez 2009-08-14
  • 打赏
  • 举报
回复
你最好还是把=号重载了吧!
ies_sweet 2009-08-14
  • 打赏
  • 举报
回复
实在不理解楼主定义的结构体qq是要实现什么样的功能。

如果是要存储字符串,还是用指针好,
但是用指针,也需要进行动态内存分配

如果用数组,就要预先知道字符串的最大长度了。

楼主可以说一下需求,我们可以帮忙分析一下。
bfhtian 2009-08-14
  • 打赏
  • 举报
回复
楼主如果想直接分配地址的话,就应该在结构体里给出足够的空间。例如:char a[10];
然后在赋值时要记得的是令a="123456";
superbtl 2009-08-14
  • 打赏
  • 举报
回复
bw->a[1][1] ="123456"; //这出错
你把=号 重载了?要用strcpy赋值 其次越界了
如果想存储很多字符串
char **指向指针的指针 malloc realloc strcpy
heroful 2009-08-14
  • 打赏
  • 举报
回复
bw->a[1][1] ="123456"; //这出错
1.数组越界,所声明的下标值过小
2.a[1][1]字符数组不是左值所以不能直接赋值,应采用strcpy或strncpy或sprintf等进行赋值
3.如改成*a[1][1],应用malloc()分配地址
buptzwp 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hyram 的回复:]
C/C++ codechar*a[1][1];
[/Quote]
这是为什么?学习一下。
jinwei1984 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hyram 的回复:]
C/C++ codechar*a[1][1];
[/Quote]

bw->a[1][1] ="123456"; //这出错
下标也超出了
acdbxzyw 2009-08-14
  • 打赏
  • 举报
回复
报错:无法从“const char [7]”转换为“char”
环境:Visual Studio 2008

const char [7] 对应 "123456"

bw->a[1][1] 是一个字符空间,无法存放上面的字符串常量

pangtaitao 2009-08-14
  • 打赏
  • 举报
回复
typedef struct qq {
char *a[1][1];
}qq;
hyram 2009-08-14
  • 打赏
  • 举报
回复
char  *a[1][1]; 

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧