Tôi cần tạo cấu trúc bên trong một hàm (động với malloc) Sau đó, tôi cần để có thể gửi nó đến chính của tôi và sử dụng nó ở đó. Tôi không có vấn đề gì với việc tạo ra nó, tôi chỉ cần giúp đỡ để gửi nó đến chính của tôi, và tôi cũng không chắc chắn làm thế nào để truy cập nó một khi tôi nhận được nó ở đó.Cấu trúc trả về từ hàm (C)
struct retValue * fn() {
struct retValue
{
int number;
};
struct retValue* st = malloc(sizeof(*st));
return(???);
}
Đó là mã tôi có cho đến nay.
Cảm ơn bạn đã được trợ giúp. Hãy cho tôi biết nếu bạn cần một cái gì đó làm rõ.
EDIT:
Ok Cần làm rõ.
Điều tôi đang cố gắng đạt được, là khả năng chuyển cấu trúc thông qua chức năng đến chính của tôi. Bên trong hàm tôi phải khai báo biến và gán giá trị cho chúng. Sau đó, trong chính tôi phải in từng biến của cấu trúc vào màn hình. Không có biến toàn cục nào có thể được sử dụng (và do đó tôi không giả sử cấu trúc toàn cầu).
Hy vọng rằng làm rõ mọi thứ.
CHỈNH SỬA 2:
Tôi đã tìm ra vấn đề của mình. Đối với những người quan tâm, trước tiên tôi cần phải có cấu trúc nguyên mẫu bên ngoài các chức năng của mình. Sau đó, tôi có thể vượt qua st và sau đó truy cập nó đúng cách. Cảm ơn tất cả, và xin lỗi vì những từ ngữ nghèo nàn.
Biến toàn cầu và cấu trúc toàn cầu khác nhau. Bằng cách làm cho cấu trúc def global, bạn chỉ định nghĩa một kiểu không phải là một biến. Nếu bạn không làm cho cấu trúc bị lỗi toàn cầu, các hàm khác sẽ không biết bất cứ điều gì về loại * mới này * và tệp prg của bạn sẽ không biên dịch. – codaddict