-1
정수와 문자열의 두 필드가있는 구조체 프로그램을 작성해야합니다. 다음으로이 구조체를 동적으로 할당하는 함수를 작성해야하며 int 및 string을 매개 변수로 사용하여 할당 된 구조체로 전달합니다. 이 함수는 또한 새로 만들어진 구조체에 대한 포인터를 반환합니다. 이 프로그램의 두 번째 요소는 struct 포인터를 매개 변수로 취하고 모든 fileds를 화면에 출력 한 다음 struct의 메모리를 해제하는 함수 여야합니다. 이것이 내가 생각할 수있는 최선의 방법입니다.구조체의 동적 메모리 할당
#include <stdio.h>
#include <stdlib.h>
struct str{
int num;
char text[20];
};
struct str* return_address(int *num, char *text){
struct str* new_struct=malloc(sizeof(struct str));
new_struct->num=num;
new_struct->text[20]=text;
return new_struct;
};
void release(struct str* s_pointer){
printf("%d %s", s_pointer->num, s_pointer->text);
free(s_pointer);
};
int main()
{
struct str* variable=return_address(1234, "sample text");
release(variable);
return 0;
}
문제는 무엇인가? – sergej
나는이 프로그램을 작동시킬 수 없었다. 컴파일 되더라도 충돌이 발생합니다. –
'new_struct-> text [20] = text;'는 당신이 원하는 것이 아닙니다. –