在C中如何将局部函数变量值传递给另一个函数并打印值而不会出现错误

坎尔
#include <stdio.h> 
#include <stdlib.h>

int give_options();

int give_options(){

    printf("===== MENU 1 =====\n");

    printf("> store new customer :\t\tenter 1\n");
    printf("> view a customer :\t\tenter 2\n");
    printf("> view all customers :\t\tenter 3\n");
    printf("> exit program :\t\tenter 4\n ");   


    int ipt = malloc(sizeof(int));
    scanf("%d",&ipt);

    return ipt;
}


int main(){
    int dec = give_options();

    printf("decision is: %d", dec);     


    getchar();
}

Ive最近开始在Ubuntu中使用C编写代码,试图将值返回一个函数的局部变量,并将其传递给另一个函数。我已经读到,由于将局部变量分配给堆栈,因此函数返回后该值将不再存在,并且我必须使用malloc在堆中分配内存。

当我编译时,我得到以下警告:

initialization makes integer from pointer without a cast
[-Wint-conversion] int ipt = malloc(sizeof(int));

当我将其调整为int ipt =(int)malloc(sizeof(int)); 我得到:

warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
int ipt = (int)malloc(sizeof(int));

正确的做法是什么?

自从我切换到Ubuntu编码以来,我也遇到了scanf的麻烦。我尝试了另一种方法,尝试使用指针:

#include <stdio.h> 
#include <stdlib.h>

int* give_options();

int* give_options(){

    printf("===== MENU 1 =====\n");

    printf("> store new customer :\t\tenter 1\n");
    printf("> view a customer :\t\tenter 2\n");
    printf("> view all customers :\t\tenter 3\n");
    printf("> exit program :\t\tenter 4\n ");   

    int* ipt; 
    ipt = malloc(sizeof(int));
    scanf("d",&ipt);

    return ipt;
}


int main(){
    int* dec = give_options();

    printf("decision is: %d", dec); 

    getchar();
}

编译这个给了我以下错误:

warning: format ‘%d’ expects argument of type ‘int *’, but argument 2 has type ‘int **’ [-Wformat=]
  scanf("%d",&ipt);

warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘int *’ [-Wformat=]
  printf("decision is: %d", dec);

哪种方法正确,哪种方法有效?

克莱布兰克

您可以直接返回值(无需使用指针)

改变

int* give_options();

int give_options(){

int* ipt; 
ipt = malloc(sizeof(int));
scanf("d",&ipt);

int ipt;
scanf("%d", &ipt);

你也可以离开

int* dec = give_options();

作为

int dec = give_options();

函数返回时,函数返回值保留在r0中。我只是注意到您的第一个示例已经做到了。您只是在尝试学习指针吗?

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将变量值从一个函数传递给另一个函数

来自分类Dev

如何将局部变量传递给另一个函数?

来自分类Dev

如何将另一个函数作为变量传递给R中的函数?

来自分类Dev

如何将函数和参数的变量列表传递给C中的另一个函数?

来自分类Dev

Python:在传递给另一个函数之前先替换变量值

来自分类Dev

如何将一个函数的值传递给另一个函数?

来自分类Dev

如何将局部变量值从函数传递给 addEventListener 函数?

来自分类Dev

如何将char数组的值传递给C中另一个文件中的函数?

来自分类Dev

将变量值传递给 ionic2 中的另一个组件

来自分类Dev

通过AJAX调用以自动完成方式将变量值从一个函数传递给另一个函数

来自分类Dev

将变量值从一个函数传递到另一个函数

来自分类Dev

进行一点rpg,但是如果不调用整个函数就无法将一个函数中的变量值传递给另一个函数

来自分类Dev

如何将一个活动的变量值传递给 android 中的 baseactivity

来自分类Dev

如何将$(this)变量传递给另一个函数javascript

来自分类Dev

Angular 2 firebase 如何将变量传递给另一个函数?

来自分类Dev

将变量值从Codeigniter中的另一个函数插入数据库?

来自分类Dev

如何将字符串变量从一个函数传递给另一个函数?

来自分类Dev

如何将变量从一个函数传递给另一个函数

来自分类Dev

如何将变量从一个函数传递给另一个函数?

来自分类Dev

如何将返回的值传递给另一个函数

来自分类Dev

如何将变量从另一个函数传递到索引函数中的视图

来自分类Dev

如何将&rest参数传递给emacs lisp中的另一个函数?

来自分类Dev

如何将参数数组传递给JavaScript中的另一个函数?

来自分类Dev

如何将BufReader传递给rust中的另一个函数?

来自分类Dev

C ++:如何将指针传递给另一个类的成员函数?

来自分类Dev

将变量值传递给另一个用户的外壳

来自分类Dev

如何在C中的另一个函数中使用局部变量的值

来自分类Dev

Ajax:如何将一个函数的变量传递给另一个jQuery

来自分类Dev

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

Related 相关文章

  1. 1

    如何将变量值从一个函数传递给另一个函数

  2. 2

    如何将局部变量传递给另一个函数?

  3. 3

    如何将另一个函数作为变量传递给R中的函数?

  4. 4

    如何将函数和参数的变量列表传递给C中的另一个函数?

  5. 5

    Python:在传递给另一个函数之前先替换变量值

  6. 6

    如何将一个函数的值传递给另一个函数?

  7. 7

    如何将局部变量值从函数传递给 addEventListener 函数?

  8. 8

    如何将char数组的值传递给C中另一个文件中的函数?

  9. 9

    将变量值传递给 ionic2 中的另一个组件

  10. 10

    通过AJAX调用以自动完成方式将变量值从一个函数传递给另一个函数

  11. 11

    将变量值从一个函数传递到另一个函数

  12. 12

    进行一点rpg,但是如果不调用整个函数就无法将一个函数中的变量值传递给另一个函数

  13. 13

    如何将一个活动的变量值传递给 android 中的 baseactivity

  14. 14

    如何将$(this)变量传递给另一个函数javascript

  15. 15

    Angular 2 firebase 如何将变量传递给另一个函数?

  16. 16

    将变量值从Codeigniter中的另一个函数插入数据库?

  17. 17

    如何将字符串变量从一个函数传递给另一个函数?

  18. 18

    如何将变量从一个函数传递给另一个函数

  19. 19

    如何将变量从一个函数传递给另一个函数?

  20. 20

    如何将返回的值传递给另一个函数

  21. 21

    如何将变量从另一个函数传递到索引函数中的视图

  22. 22

    如何将&rest参数传递给emacs lisp中的另一个函数?

  23. 23

    如何将参数数组传递给JavaScript中的另一个函数?

  24. 24

    如何将BufReader传递给rust中的另一个函数?

  25. 25

    C ++:如何将指针传递给另一个类的成员函数?

  26. 26

    将变量值传递给另一个用户的外壳

  27. 27

    如何在C中的另一个函数中使用局部变量的值

  28. 28

    Ajax:如何将一个函数的变量传递给另一个jQuery

  29. 29

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

热门标签

归档