如何调用另一个函数来获取字符串数据 #包括 #包括 #包括 #包括 #杂注警告(禁用: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); 系统(“暂停”); }
我添加这个函数来测试project 为什么我一无所获,毫无差错?? 这使我困惑了很长时间。 我想我应该再学习一下指针如何调用另一个函数来获取字符串数据 #包括 #包括 #包括 #包括 #杂注警告(禁用: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;
#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);