免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: studentstep
打印 上一主题 下一主题

大家好,请看下面程序的输出[已结帖] [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-12-29 09:52 |只看该作者
*str1 = str_test[1] ;

*str1 = (char *)str_test ;

肯定不对,str_test  在栈中,那么如何才能实现这个功能呢 ?

论坛徽章:
0
12 [报告]
发表于 2005-12-30 18:32 |只看该作者
up

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
13 [报告]
发表于 2005-12-30 18:45 |只看该作者
原帖由 studentstep 于 2005-12-29 09:38 发表
to aero : 你说的是对的,不能用 memcpy() , 那正确的应该怎样做呢 ? 谢谢


呵呵,循环,cpy20遍。^_^。

论坛徽章:
0
14 [报告]
发表于 2005-12-30 19:25 |只看该作者
指针很重要,一定要弄清楚地。

  1. #include<string.h>
  2. #include<alloc.h>
  3. #include <stdio.h>


  4. int func(char ***) ;

  5. int main()
  6. {
  7.         char ** str = NULL ;
  8.         func(&str) ;
  9.         int i = 0 ;
  10.         for (i = 0 ; i < 21 ; i ++)
  11.         {
  12.                 printf("%i:%s\n",i,str[i]);
  13.         }
  14.         return 0 ;
  15. }

  16. int func(char *** str1)
  17. {
  18.         char *str_test[20];
  19.         int i = 0 ;

  20.         *str1 = (char * *)calloc(20,sizeof(char *));
  21.         for (i = 0 ; i < 21 ; i ++)
  22.         {
  23.                 (*str1)[i]=str_test[i] = (char *)malloc(256*sizeof(char)) ;
  24.                 strcpy(str_test[i] , "AAAAAAAAAAAAA") ;
  25.         }
  26.          return 0;
  27. }
复制代码

论坛徽章:
0
15 [报告]
发表于 2005-12-30 20:38 |只看该作者
楼上您的做法是对的,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP