我试图char
从内存中返回一个数组,我只是得到一些随机值。我不知道出了什么问题。这是我的代码:
堆栈.h:
struct node{
char s[MAX_STRING_SIZE];
struct node * next;
};
typedef struct {
struct node * head;
} 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;
}
}
主.c:
char * s2 = pop(&my_stack);
printf("%s\n", s2);
这只会将一些随机值打印到控制台。我检查并弹出正确地从内存中删除节点。如何正确返回此字符串?