将字符串数组传递给C中的函数

鳗鱼

我想通过函数在C中初始化字符串数组。我使用以下代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void createArrayStrings(char ** listStr){
    listStr = malloc (3 * sizeof(char*));
    listStr[0] = malloc(2 * sizeof(char)); // N chars + '\0'
    listStr[1] = malloc(3 * sizeof(char));
    listStr[2] = malloc(4 * sizeof(char));
    strcpy(listStr[0], "A");
    strcpy(listStr[1], "AB");
    strcpy(listStr[2], "ABC");
}

int main(int argc, const char * argv[]) {
    char ** listStr = NULL;
    createArrayStrings(listStr);
    for (int i = 0;i<3;i++){
        printf("%s\n",listStr[i]);
    }
    return 0;
}

但是printf中存在执行错误EXEC_BAD_ACCESS。我的错误在哪里?谢谢。

菲利普·穆里

您不能在main中使用变量listStr,因为它永远不会填充实际值。调用createArrayStrings时,所传递的参数将按值复制-这意味着您在新函数中有一个NEW副本。现在,副本将填充您需要的数据,但不会填充main中的原始变量(它仍然为null)。

最好的方法是让createArrayStrings返回listStr的值,并将其分配给主函数中的listStr:

char ** listStr = createArrayStrings();

新的create函数将如下所示:

void createArrayStrings(){
    char ** listStr = malloc (3 * sizeof(char*));
    ...
    return listStr;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++将字符串数组传递给函数

来自分类Dev

如何将字符串数组传递给函数?

来自分类Dev

如何将字符串数组传递给 C 中的另一个函数

来自分类Dev

将C#字符串数组传递给C ++

来自分类Dev

类型不匹配错误,将字符串从数组(在VBA中)传递给函数

来自分类Dev

如何将Swift字符串数组传递给带有char **参数的C函数

来自分类Dev

C ++:在不使用向量的情况下将字符串数组传递给函数

来自分类Dev

c#将多行字符串传递给函数并返回数组

来自分类Dev

LuaJIT ffi:如何将字符串数组传递给c函数

来自分类Dev

将C ++字符串传递给ac#函数

来自分类Dev

将指针(字符串)传递给C函数

来自分类Dev

C 将字符串传递给函数问题

来自分类Dev

将swift字符串传递给c函数char *

来自分类Dev

将字符串传递给函数

来自分类Dev

将字符串传递给函数

来自分类Dev

如何将字符串迭代器变量传递给C ++中的函数?

来自分类Dev

是否有任何函数将字符串传递给C中的结构?

来自分类Dev

将字符串变量传递给包含 C 中 system() 命令的函数

来自分类Dev

将无符号字符数组传递给字符串函数

来自分类Dev

如何将字符串数组指针传递给新的字符数组?在 C

来自分类Dev

如何将字符数组传递给字符串

来自分类Dev

将数组传递给C中的函数

来自分类Dev

将数组传递给函数时,变量vs字符串类型不匹配

来自分类Dev

将2D数组和字符串向量作为参数传递给函数

来自分类Dev

将2D字符串数组传递给函数

来自分类Dev

将数组的元素作为参数列表传递给函数(而不是组合字符串)

来自分类Dev

将字符串数组传递给函数分段错误

来自分类Dev

将字符串参数传递给函数以访问数组的属性

来自分类Dev

如何将字符串数组从函数传递给main

Related 相关文章

  1. 1

    C ++将字符串数组传递给函数

  2. 2

    如何将字符串数组传递给函数?

  3. 3

    如何将字符串数组传递给 C 中的另一个函数

  4. 4

    将C#字符串数组传递给C ++

  5. 5

    类型不匹配错误,将字符串从数组(在VBA中)传递给函数

  6. 6

    如何将Swift字符串数组传递给带有char **参数的C函数

  7. 7

    C ++:在不使用向量的情况下将字符串数组传递给函数

  8. 8

    c#将多行字符串传递给函数并返回数组

  9. 9

    LuaJIT ffi:如何将字符串数组传递给c函数

  10. 10

    将C ++字符串传递给ac#函数

  11. 11

    将指针(字符串)传递给C函数

  12. 12

    C 将字符串传递给函数问题

  13. 13

    将swift字符串传递给c函数char *

  14. 14

    将字符串传递给函数

  15. 15

    将字符串传递给函数

  16. 16

    如何将字符串迭代器变量传递给C ++中的函数?

  17. 17

    是否有任何函数将字符串传递给C中的结构?

  18. 18

    将字符串变量传递给包含 C 中 system() 命令的函数

  19. 19

    将无符号字符数组传递给字符串函数

  20. 20

    如何将字符串数组指针传递给新的字符数组?在 C

  21. 21

    如何将字符数组传递给字符串

  22. 22

    将数组传递给C中的函数

  23. 23

    将数组传递给函数时,变量vs字符串类型不匹配

  24. 24

    将2D数组和字符串向量作为参数传递给函数

  25. 25

    将2D字符串数组传递给函数

  26. 26

    将数组的元素作为参数列表传递给函数(而不是组合字符串)

  27. 27

    将字符串数组传递给函数分段错误

  28. 28

    将字符串参数传递给函数以访问数组的属性

  29. 29

    如何将字符串数组从函数传递给main

热门标签

归档