assign()関数を使用して、構造体ポインタ変数l
に格納している構造体のメモリを割り当てています。
しかし、私はこのコードを実行すると言うエラーがある:構造体ポインタを返そうとしています
「リターン」このスコープで宣言されていなかったが。
コード
#include<stdio.h>
#include<stdlib.h>
typedef struct list {
int a;
char c;
};
list *assign();
int main() {
list *l;
l = assign();
l->a = 20;
printf("%d",l->a);
return 0;
}
list *assign() {
list *ptr = (list*)malloc(sizeof(list));
reutrn ptr;
}
'reutrn ptr;'を 'return ptr;'に変更します。 –
完了したらメモリをフリーズすることを忘れないでください。メモリの懸念を機能から分離することはさらに良いでしょう。コンストラクタ/デストラクタが必要な場合は、両方を記述します。懸念を分けることで、より明確で明確なコードを作成し、プロジェクトの成長に伴うメモリリークのリスクを最小限に抑えます。 – Myst