当前位置:  技术问答>linux和unix

写了段代码,发现个问题,求解释

    来源: 互联网  发布时间:2017-03-16

    本文导语:  本帖最后由 xiaoliu5396 于 2012-09-21 15:24:44 编辑 //test.c #include  #include  static void command(const char *command, char *cmd[]) { static char buff[30]; int i=0; strcpy(buff, command);  cmd[i] = strtok(buff, " "); while (cmd[i] != NULL) { i++...

本帖最后由 xiaoliu5396 于 2012-09-21 15:24:44 编辑
//test.c

#include 
#include 

static void command(const char *command, char *cmd[])
{
static char buff[30];
int i=0;
strcpy(buff, command); 
cmd[i] = strtok(buff, " ");
while (cmd[i] != NULL)
{
i++;
cmd[i] = strtok(NULL, " ");
}
}

int main(int argc,char *argv[])
{
if (argc  ./aaa 5 6
5 5
5 5

但是在
static void command(const char *command, char *cmd[])
{
static char buff[30];
int i=0;
strcpy(buff, command);  
cmd[i] = strtok(buff, " ");
while (cmd[i] != NULL)
{
i++;
cmd[i] = strtok(NULL, " ");
}}

数组越界了。

|
command函数中有问题,问题语句;cmd[i] = strtok(NULL, " ");,应该改成:cmd[i] = strtok(buff+strlen(cmd[i-1], " "));因为你每次的查找都应该基于上次的查找位置

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • javascript 添加到收藏夹和书签代码示例
  • 在JBuilder中,为什么编写的代码中,当代码出现关键字时,后面的部分代码就移位了,当在有关键字的那些代码行进行选择时,也会出现鼠标位
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 为什么两行代码间不加入其他代码就崩溃,而加入了日志代码后就不崩溃?
  • JSP中清空cookie代码参考
  • 在ubuntu8.10 新立得中安装anjuta,为什么没有代码提示功能,怎么做才有,还有自动代码补全和代码提示有什么区别,
  • Python获取网页编码的方法及示例代码
  • 到底怎么样的代码算是有效代码?请教了。。
  • HTML网页中的html body onload自动跳转方法介绍及自动跳转代码示例
  • 如果要研究源代码以提高自己,哪一个开放源代码的软件比较合适?
  • php通过socket_bind()设置IP地址代码示例
  • linux源代码的时间函数源代码
  • boost库lexical_cast不同用法代码参考
  • gdb的时候代码 next显示的代码乱了
  • 通过javascript库JQuery实现页面跳转功能代码
  • 源代码!源代码!
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • 哪位会使用代码保护工具WingGuard来保护java代码?
  • HTML网页的Meta Refresh自动跳转方法介绍及Meta Refresh自动跳转代码示例
  • 如何得到C语言代码对应的汇编代码?
  • Linux c++虚函数(virtual function)简单用法示例代码
  • RedHat Linux是开放源代码的吗?如何能看见它的源代码,如何进行修改?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3