QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 857|回复: 7

C语言中字符串数组的问题

[复制链接]
发表于 2004-4-19 09:44:27 | 显示全部楼层 |阅读模式
程序如下:
#include <stdio.h>
#include <string.h>

char *hcode[256];
char *temp;
int i;
int main(int argc,char *argv[])
{
  ......
  function1();
  /*printf("%s\n",temp);*/
  strcpy(hcode,temp);
  ......
  for(i=0;i<256;i++)
  printf("%d,%s\n",i,hcode);
  return 0;
}
其中temp是由遍历二叉树得到的一个字符串,已由printf("%s\n",temp)检查能得到合法的一个串,hcode[256]是一个字符串数组,可是执行strcpy(hcode,temp)后进入循环打印出的全部是(null),我已经迷惑了一天了,请问各位是哪里有问题?
发表于 2004-4-19 14:57:43 | 显示全部楼层
hcode没有申请内存
回复

使用道具 举报

 楼主| 发表于 2004-4-19 15:04:00 | 显示全部楼层
那要怎么改才行啊?斑竹大人
回复

使用道具 举报

发表于 2004-4-19 16:37:34 | 显示全部楼层
......leng!
回复

使用道具 举报

发表于 2004-4-19 17:06:16 | 显示全部楼层
#include <stdio.h>
#include <string.h>

char hcode[256];
char *temp;
int i;
int main(int argc,char *argv[])
{
......
function1();
/*printf("%s\n",temp);*/
strcpy(hcode,temp);
......
printf("%s\n",hcode);
return 0;
}
这样应该没问题。
如果你要循环打印
应该这样写
for(i=0; i<256; i++)
        printf("%c\n",hcode);
回复

使用道具 举报

 楼主| 发表于 2004-4-20 08:13:45 | 显示全部楼层
谢谢楼上的,我明白楼上的意思,你是把hcode字符数组作为一个串来处理.
可能是我没说清楚,我的意思是hcode数组是一个字符串数组,每个元素是指向一个串的指针
已经改为下面的代码且能正确运行
[code:1]
#include <stdio.h>
#include <string.h>

struct hnode
{
  char str[128];
};
struct hnode hufcode[256];
char *temp;
int i;
int main(int argc,char *argv[])
{
......
function1();
/*printf("%s\n",temp);*/
strcpy(hcode[i].str,temp);
......
for(i=0;i<256;i++)
printf("%d,%s\n",i,hcode[i].str);
return 0;
}
[/code:1]
回复

使用道具 举报

发表于 2004-4-20 12:17:35 | 显示全部楼层
这个是静态分配内存的,当然可以.
回复

使用道具 举报

发表于 2004-4-20 16:02:09 | 显示全部楼层
strcpy(hcode,temp);
改成
hcode = temp
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 14:00 , Processed in 0.049647 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表