gpt4 book ai didi

c - 返回浮点型指针会在到达主函数时更改地址

转载 作者:行者123 更新时间:2023-11-30 19:47:05 25 4
gpt4 key购买 nike

主要方法

 int x, y;
printf("Please enter 2 integers separated by a space: ");
scanf("%d %d", &x, &y);

其他方法。这是从主函数调用的matrix_get函数的一部分

if (key_comp (key, node->key) == 0){
data_print(node->data);

一些头文件

typedef float Data_Item;

好吧,当我返回指向 Data_Item 的指针(它是一个 float typedef)时,它的地址会发生变化,因此当我在 main 方法中取消引用它时,它会变为 null。为什么?

最佳答案

线路

   pdata=&(node->data);

更改pdata的值。它现在与 malloc 返回的值不同。您已注释掉的更有意义的行是:

   //*pdata=node->data;

在第一行中,您将 pdata 指定为 node->data 的地址。在注释掉的行中,您试图设置 pdatanode->data 指向的值。

您缺少两个分支的返回

改变

if(key_comp (key, node->key) == -1){
bs_tree_search_h(node->left, key);
}else if(key_comp (key, node->key) == 1){
bs_tree_search_h(node->right, key);
}

if(key_comp (key, node->key) == -1){
return bs_tree_search_h(node->left, key);
}else if(key_comp (key, node->key) == 1){
return bs_tree_search_h(node->right, key);
}

关于c - 返回浮点型指针会在到达主函数时更改地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22727587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com