房天下 > 房天下问答 > 业主生活 > 其他
  • CMD下输入的字符串存在哪里

    新建一个 wj.cpp 文件内容如下:#include <stdio.h>#include <string.h>int main(int argc, char * argv[]){for (int i=1; i<argc; ++i){ printf("%s",argv); strcpy(argv, "jia哥"); puts(argv);}return 0;}编译链接后,在debug文件夹下找到wj.exe,复制到C盘根目录下然后打开CMD,输入 CD C:\ 回车再输入 wj read fight 回车看结果;//我现在郁闷的是 在cmd里输入的wj read fight是放在内存中的哪个区如果被一个巨长的字符串strcpy,会不会越界;懂的请说出来,帮助一下新手!

    提问者:余韵天下

    发布于2011-02-09

共1个回答
  • aliaHax 丨Lv 0
    argv只是提供你一个字符串指针;长度取决于输入命令行参数。你不应该试图往argv拷贝字符串,如果字符串大于原参数长度就会造成越界。你可以验证argv地址for(int i=0;i<argc;i++) printf("parameter %d, addr=%08X:%s\r\n",i,(unsigned int)argv[i],argv[i]);
    +1 2011-02-10 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。