zoukankan      html  css  js  c++  java
  • 二维数组传递参数问题

    直接给出示例,来说明问题:

    示例1:

     1 #include "stdio.h"
     2 
     3 void func(int argc, char *args[])
     4 {
     5     int i = 0;
     6 
     7     for (i = 0; i < argc; i++) {
     8         printf("%s
    ", args[i]);
     9     }   
    10     
    11 }
    12 
    13 int main(void)
    14 {
    15     char *args[] = {"111", "222", "333"};
    16 
    17     func(3, args);
    18 
    19     return 0;
    20 }

    运行结果,程序可正常运行:

     示例2:

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 void func(int argc, char *args[])
     5 {
     6     int i = 0;
     7 
     8     for (i = 0; i < argc; i++) {
     9         printf("%s
    ", args[i]);
    10     }   
    11     
    12 }
    13 
    14 int main(void)
    15 {
    16     char *args1[] = {"111", "222", "333"};
    17     char args2[3][10];
    18     int i = 0;
    19 
    20     for (i = 0; i < 3; i++)
    21         memcpy(args2[i], args1[i], strlen(args1[i]));
    22 
    23     func(3, args2);
    24 
    25     return 0;
    26 }

    运行结果,出现段错误:

    具体的问题原因如下:

  • 相关阅读:
    CLSCompliantAttribute
    杂言
    批处理修改目录的隐藏属性
    unittest基本用法
    unittest跳过用例
    MySQL流程控制结构
    MySQL视图
    MySQL函数
    unittest断言 & 数据驱动
    PLSQL
  • 原文地址:https://www.cnblogs.com/mrlayfolk/p/14322582.html
Copyright © 2011-2022 走看看