怎么给字符指针数组赋值

cs小亮 2013-05-19 06:27:18
帮忙看一下这段代码,有什么错误啊?
char *sname[]={};
int k=0;
for(i=0;i<20;i++)
{
char name[128]="";
name=get_name();//这个函数是获得字符串name的
sname[k++]=(char *)malloc(512);
sname[k++]=name;
}

...全文
209 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-05-20
  • 打赏
  • 举报
回复
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……
FredHuang85 2013-05-20
  • 打赏
  • 举报
回复
引用 1 楼 baichi4141 的回复:
char *sname[]={}; 数组大小不确定 name=get_name();//这个函数是获得字符串name的 数组名不能赋值 sname[k++]=(char *)malloc(512); sname[k++]=name; 两次++,这两行代码操作的不是sname数组内的同一个位置 别问我怎么改,我的建议只有一条,就是从头学习基础知识
+1
cs小亮 2013-05-19
  • 打赏
  • 举报
回复
谢谢各位了,初学c语言,看来要下功夫了。
hugett 2013-05-19
  • 打赏
  • 举报
回复
你的代码错误实在太多了。。改成这样吧。。

char *sname[20];
int k=0;
for(i=0;i<20;i++)
{
   sname[k]=(char *)malloc(512);
   strcpy(sname[k], get_name());
   k++;
}
Carl_CCC 2013-05-19
  • 打赏
  • 举报
回复
你个程序错误太多了,还是先看下基础在写吧。 char *sname[]={}; int k=0; for(i=0;i<20;i++) { char name[128]=""; name=get_name();//这个函数是获得字符串name的 //不能直接赋值 sname[k++]=(char *)malloc(512);//你定义成时候没分配内存给sname, 不能用malloc,这是泄漏啊 sname[k++]=name; //不能赋值,而且是局部地址 }
baichi4141 2013-05-19
  • 打赏
  • 举报
回复
char *sname[]={}; 数组大小不确定 name=get_name();//这个函数是获得字符串name的 数组名不能赋值 sname[k++]=(char *)malloc(512); sname[k++]=name; 两次++,这两行代码操作的不是sname数组内的同一个位置 别问我怎么改,我的建议只有一条,就是从头学习基础知识

69,371

社区成员

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

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