У меня есть вопрос о следующей программе: Он печатает:Что мне делать, чтобы исправить эту программу?
DST-> вал в f1 = 6
dst.val в основной = -528993792
Я хочу исправить эту программу таким образом, он будет печатать
dst.val в основной = 6
Как это сделать?
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
typedef struct my_struct myStruct;
struct my_struct
{
int val;
};
myStruct *f2(void)
{
myStruct *dst = malloc(sizeof(myStruct));
dst->val = 6;
return dst;
}
void f1(myStruct *dst)
{
dst = f2();
printf("**dst->val in f1=%d\n", dst->val);
}
int main()
{
myStruct dst;
f1(&dst);
printf("**dst.val in main=%d\n", dst.val);
}
Было бы страшно, если бы вы могли изменить адрес объекта, выделенного автоматически. Тем не менее, приятно, что вы не набрасываете возвращаемое значение 'malloc()'. –
выглядит как домашнее задание ... – thang