如何调用另一个函数来获取字符串数据 #包括 #包括 #包括 #包括 #杂注警告(禁用:4996) 类型定义结构预加载{ char*pre_ip; int数据2; 字符数据3; }预加载; int a(预加载预加载){ 字符*测试; test=(char*)calloc(1256); strcpy(测试,“测试127.0.0.0.1”); pre.pre_ip=(char*)calloc(1256); strcpy(预处理、预处理、试验); 返回0; }; int main(){ 预加载预加载; pre.pre_ip=(char*)calloc(1256); a(预科); printf(“%s”,前ip); 系统(“暂停”); }

如何调用另一个函数来获取字符串数据 #包括 #包括 #包括 #包括 #杂注警告(禁用:4996) 类型定义结构预加载{ char*pre_ip; int数据2; 字符数据3; }预加载; int a(预加载预加载){ 字符*测试; test=(char*)calloc(1256); strcpy(测试,“测试127.0.0.0.1”); pre.pre_ip=(char*)calloc(1256); strcpy(预处理、预处理、试验); 返回0; }; int main(){ 预加载预加载; pre.pre_ip=(char*)calloc(1256); a(预科); printf(“%s”,前ip); 系统(“暂停”); },c,pointers,C,Pointers,我添加这个函数来测试project 为什么我一无所获,毫无差错?? 这使我困惑了很长时间。 我想我应该再学习一下指针 #include<stdio.h> #include<string.h> #include<fstream> #include<malloc.h> #pragma warning(disable : 4996) typedef struct pre_load{ char *pre_ip; int data2;

我添加这个函数来测试project

为什么我一无所获,毫无差错?? 这使我困惑了很长时间。 我想我应该再学习一下指针

#include<stdio.h>
#include<string.h>
#include<fstream>
#include<malloc.h>

#pragma warning(disable : 4996)

typedef struct pre_load{
    char *pre_ip;
    int data2;
    char data3;
}pre_load;
int a(pre_load pre){
    char *test;
    test = (char*)calloc(1, 256);
    strcpy(test, "test127.0.0.0.1");
    pre.pre_ip = (char*)calloc(1, 256);
    strcpy(pre.pre_ip, test);
    return 0;
};
int main(){
    pre_load pre;
    pre.pre_ip = (char*)calloc(1, 256);
    a(pre);

    printf("%s", pre.pre_ip);
    system("pause");
}
您正在按值传递
pre
,因此在函数
a
中修改的任何内容都不会影响
main
中的
pre
。相反,声明传递指针的函数:

int a(pre_load pre)
并将其传入
main

void a(pre_load *pre){
    char *test = calloc(1, 256);
    strcpy(test, "test127.0.0.0.1");
    pre->pre_ip = calloc(1, 256);
    strcpy(pre->pre_ip, test);
    free(test);
};

请注意,您的原始代码中存在内存泄漏。

a()
存在内存泄漏-您泄漏了
test
指向的内存。不要将您的问题更改为全新的问题,您可以提出新问题。
pre_load pre;
a(&pre);