无法通过strcpy从参数复制到char数组中

0x6B6F77616C74
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void doSth(char *a)
{
    char *b,*c;
    b = malloc(2*sizeof(char));
    b[0]='a';
    b[1]='\0';

    a = malloc(2*sizeof(char));
    c = malloc(2*sizeof(char));
    strcpy(a,b);
    strcpy(c,b);

    printf("c:%s\n",c);
    free(c);
    free(b);
}


int main()
{
    char *myString;

    doSth(myString);

    printf("%s\n",myString);

    free(myString);
    return 0;
}

该程序仅输出“ c:a”。为什么我不能将b复制到a?根据调试器,变量“ a”在每一行中都为空。

弗朗西斯

通过a = malloc(2*sizeof(char));in函数void doSth(char *a),可以在函数a范围内修改的本地副本,但不能超出其范围。如果要修改myString则应将指向myString&myString的指针赋予该函数。称为通过指针传递:

char *myString;

doSth(&myString);

该函数的原型相应地进行了更改:

void doSth(char **a){
  ...
  *a = malloc(2*sizeof(char));
  strcpy(*a,b);
  ...
}

出于相同的原因,它是int a=1;printf("%d",a);printf仅需要的值a),但是int a;scanf("%d",&a);scanf需要指向的指针a来修改amain中的值)。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法通过strcpy从参数复制到char数组中

来自分类Dev

将char数组复制到字符指针数组中

来自分类Dev

将结构复制到char数组中

来自分类Dev

无法从char指针复制到short

来自分类Dev

将char指针数组的值复制到char数组

来自分类Dev

使用strcpy将“字符串”复制到结构成员char *中时出现分段错误

来自分类Dev

如何将char数组复制到C中的char指针?

来自分类Dev

gzip并将粘贴内容复制到C程序中的String / char数组中

来自分类Dev

将包含Unicode文件的副本复制到C中的char数组中

来自分类Dev

gzip并将粘贴内容复制到C程序中的String / char数组中

来自分类Dev

如何通过golang中的CGO将Go字符串复制到C char *?

来自分类Dev

使用memcpy将int复制到char数组中,然后打印其成员:undefined behaviour?

来自分类Dev

如何在C ++中将数组char复制到字符串或int *(void *)中?

来自分类Dev

将字符串从argv复制到C中的char数组

来自分类Dev

将char输入复制到字符串数组中

来自分类Dev

struct中的char数组成员-复制到这两个成员的值

来自分类Dev

将文本文件复制到 char* 数组中

来自分类Dev

可以使用strcpy()将malloc数组复制到C语言中的堆栈数组吗?

来自分类Dev

从十六进制字符数组复制到char *类型

来自分类Dev

将名称从文件复制到char *数组的功能

来自分类Dev

C ++将#define复制到char数组

来自分类Dev

从十六进制字符数组复制到char *类型

来自分类Dev

将argv复制到char数组时出错

来自分类Dev

strcpy() 将字符串从结构成员复制到字符数组失败。为什么?

来自分类Dev

C ++将数组复制到指针参数

来自分类Dev

通过strftime从结构复制到数组不起作用

来自分类Dev

通过循环将数据复制到整数指针数组?

来自分类Dev

参数列表过长,无法复制到Samba分享

来自分类Dev

参数列表过长,无法复制到Samba分享

Related 相关文章

  1. 1

    无法通过strcpy从参数复制到char数组中

  2. 2

    将char数组复制到字符指针数组中

  3. 3

    将结构复制到char数组中

  4. 4

    无法从char指针复制到short

  5. 5

    将char指针数组的值复制到char数组

  6. 6

    使用strcpy将“字符串”复制到结构成员char *中时出现分段错误

  7. 7

    如何将char数组复制到C中的char指针?

  8. 8

    gzip并将粘贴内容复制到C程序中的String / char数组中

  9. 9

    将包含Unicode文件的副本复制到C中的char数组中

  10. 10

    gzip并将粘贴内容复制到C程序中的String / char数组中

  11. 11

    如何通过golang中的CGO将Go字符串复制到C char *?

  12. 12

    使用memcpy将int复制到char数组中,然后打印其成员:undefined behaviour?

  13. 13

    如何在C ++中将数组char复制到字符串或int *(void *)中?

  14. 14

    将字符串从argv复制到C中的char数组

  15. 15

    将char输入复制到字符串数组中

  16. 16

    struct中的char数组成员-复制到这两个成员的值

  17. 17

    将文本文件复制到 char* 数组中

  18. 18

    可以使用strcpy()将malloc数组复制到C语言中的堆栈数组吗?

  19. 19

    从十六进制字符数组复制到char *类型

  20. 20

    将名称从文件复制到char *数组的功能

  21. 21

    C ++将#define复制到char数组

  22. 22

    从十六进制字符数组复制到char *类型

  23. 23

    将argv复制到char数组时出错

  24. 24

    strcpy() 将字符串从结构成员复制到字符数组失败。为什么?

  25. 25

    C ++将数组复制到指针参数

  26. 26

    通过strftime从结构复制到数组不起作用

  27. 27

    通过循环将数据复制到整数指针数组?

  28. 28

    参数列表过长,无法复制到Samba分享

  29. 29

    参数列表过长,无法复制到Samba分享

热门标签

归档