メモリから配列を返そうとしていchar
ますが、ランダムな値を取得しています。何が悪いのかわかりません。これは私のコードです:
スタック.h:
struct node{
char s[MAX_STRING_SIZE];
struct node * next;
};
typedef struct {
struct node * head;
} stack;
stack.c:
char * pop(stack * my_stack){
if (my_stack->head == NULL){
printf("Stack is empty.");
exit(0);
} else {
struct node * tmp = my_stack->head;
char * s = tmp->s;
my_stack->head = my_stack->head->next;
free(tmp);
return s;
}
}
main.c:
char * s2 = pop(&my_stack);
printf("%s\n", s2);
これにより、ランダムな値がコンソールに出力されます。メモリからノードを正しく削除することを確認しました。この文字列を正しく返すにはどうすればよいですか?