我多次尝试搜索我的问题,但从未找到适合我问题的答案。我必须修改一个指向函数内部结构的指针(将其填充数据),然后将该指针用作另一个函数的参数。 我有一个包含多个报告的文本文件,应该对报告进行计数并将所有数据填充到指向结构的指针中。这不是问题,我分配了内存没有问题,没有问题地遍历了文件,并且还填充了指针。但是我不知道如何在函数外部使用填充的指针。
struct report{
char name[50];
int id_number;
}
void function1(struct report **ptr){
//do stuff like count the number of reports in file
//and allocate memmory for pointer to structure
//and fill the pointer to structure with data
}
int main() {
struct report *pointer;
function(pointer);
//now I expect variable 'pointer' to be filled and ready to use by another functions
return 0;
}
能否请您提出一些解决方案?谢谢您的时间和帮助。
答案 0 :(得分:2)
请查看示例:
#include <stdlib.h>
#include <stdio.h>
struct report{
char name[50];
int id_number;
};
void foo(struct report **ptr){
*ptr = malloc(sizeof(struct report)); // allocate memory
(*ptr)->id_number = 42; // fill the allocated memory
}
int main() {
struct report *pointer;
foo(&pointer); // important part - pass to the foo() pointer to the pointer.
printf("%d\n", pointer->id_number);
free(pointer); // do not forget to free the memory.
return 0;
}