关于对node中数组赋值的问题(已解决)

#include
#include 
#include 
#include 
#include "string.h"
#include 

typedef struct list{
    char info_name[128];
    int  num;
    struct list *pre;
    struct list *node;
    struct list *next;
}info_list;


 /* 1.初始化线性表,即置单链表的表头指针为空 */
static info_list* init_list(void){
    info_list* node;
    char buff[128] = "hello";
    
    node = (info_list*)malloc(sizeof(info_list)); 
    //node->info_name[0] = buff[0];
    node->info_name = "hello";                      //------->[ 问题点 ]
    node->pre = NULL;
    node->node = NULL;
    node->next = NULL;

    return node;
}

int main()
{
    char buff[128] = "hello";
    info_list* my_list;
    my_list = (info_list*)init_list();
    printf("--------------------------------\n");
    printf("buff[0] : %c \n",my_list->info_name[0]);
    printf("buff[1] : %c \n",my_list->info_name[1]);
    printf("buff[2] : %c \n",my_list->info_name[2]);
    printf("buff[3] : %c \n",&my_list->info_name[3]);
    printf("buff[4] : %c \n",&my_list->info_name[4]);

    printf("--------------------------------\n");
    printf("buff[0] : %c \n",buff[0]);
    printf("buff[1] : %c \n",buff[1]);
    printf("buff[2] : %c \n",buff[2]);
    printf("buff[3] : %c \n",buff[3]);
    printf("buff[4] : %c \n",buff[4]);
    return 0;
}

如代码所示,在函数init_list函数中,对新节点中name数组初始化并赋值“hello”,打印发现如下图所示:

关于对node中数组赋值的问题(已解决)_第1张图片

问题原因与解决方法:

调用strcpy函数将需要初始化的内容赋值给name:strcpy(node->info_name ,“hello”);

https://zhidao.baidu.com/question/1175926789213297099.html

关于对node中数组赋值的问题(已解决)_第2张图片

你可能感兴趣的:(问题)