Hi guys,
This is my first post and I'm hoping the experts here can help me solve my problem.
- I'm trying to create a linked list in C and the codes look like this:
#include "stdio.h"
#include <stdlib.h>
#include <string>
using namespace std;
struct dir_list
{
int level;
string dir_name;
struct dir_list * head;
struct dir_list * tail;
};
typedef struct dir_list * dir;
void main()
{
dir curr;
curr=(dir)malloc(sizeof(string)+sizeof(dir));
curr->level=0;
curr->dir_name="test ";
curr->head=NULL;
curr->tail=NULL;
}
The problem with this code happens at the string assignment curr->dir_name="test "; and the executable will stop responding once run. I suspect the problem could be caused by the size of malloc but the result stays the same after I increased that number.
Can anyone explain to me what the problem is?
Greatly appreciated!
This is my first post and I'm hoping the experts here can help me solve my problem.
- I'm trying to create a linked list in C and the codes look like this:
#include "stdio.h"
#include <stdlib.h>
#include <string>
using namespace std;
struct dir_list
{
int level;
string dir_name;
struct dir_list * head;
struct dir_list * tail;
};
typedef struct dir_list * dir;
void main()
{
dir curr;
curr=(dir)malloc(sizeof(string)+sizeof(dir));
curr->level=0;
curr->dir_name="test ";
curr->head=NULL;
curr->tail=NULL;
}
The problem with this code happens at the string assignment curr->dir_name="test "; and the executable will stop responding once run. I suspect the problem could be caused by the size of malloc but the result stays the same after I increased that number.
Can anyone explain to me what the problem is?
Greatly appreciated!