我正在尝试运行以下代码,但它在访问结构数组值时为我提供了垃圾数据。为什么会发生这种情况,我该如何解决?一旦我将 malloc 部分移动到 main 函数,它似乎就可以工作了。但我想将 malloc 保留在一个单独的函数中。
#include <cstdlib>
#include <limits>
#include <iostream>
using namespace std;
/*
*
*/
typedef struct{
float x;
float y;
} CoordinateData;
void tester(CoordinateData* cd_data){
cd_data = (CoordinateData*)malloc(5*sizeof(CoordinateData));
CoordinateData data = {41.2525,74.0744};
*cd_data = data;
}
int main(int argc, char** argv) {
CoordinateData* cd_data;
tester(cd_data);
std::cout << (*cd_data).x << "::" << (*cd_data).y << std::endl;
}
我得到的输出是 2.42126e-39::-1.51015e-05 预期的输出是 41.2525::74.0744